diff options
author | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2017-02-12 22:18:09 +0700 |
---|---|---|
committer | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2017-02-12 22:18:09 +0700 |
commit | 36461ea5c65fcdf7169abdb39549ef53a15d4f03 (patch) | |
tree | 635e883e7c2930a379bc88b29c531f0228a7d4b1 /daily/302intermediate/barchart.py | |
parent | 1a8e1e68759611a66ae116771da5f376c95a3b9f (diff) | |
download | cp-36461ea5c65fcdf7169abdb39549ef53a15d4f03.tar.gz |
Add /r/dailyprogrammer Challenge #302 [Intermediate] and slightly clean up
Diffstat (limited to 'daily/302intermediate/barchart.py')
-rwxr-xr-x | daily/302intermediate/barchart.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/daily/302intermediate/barchart.py b/daily/302intermediate/barchart.py new file mode 100755 index 0000000..e699fcd --- /dev/null +++ b/daily/302intermediate/barchart.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +from math import gcd + +minx, maxx, miny, maxy = map(int, input().split()) +n, step, z, s, d = int(input()), maxy - miny, len(str(maxy)), {minx, maxx}, {} +for i in range(n): + start, end, freq = map(int, input().split()) + step = gcd(step, freq - miny) + s.update({start, end}) + d[start] = freq +points = sorted(s) +spaces = [' ' * len(str(i)) for i in points] +for i in points: + d.setdefault(i, 0) +while maxy >= miny: + print(str(maxy).rjust(z), end='') + for i, point in enumerate(points[:-1]): + print(spaces[i], '*' if d[point] >= maxy else ' ', sep='', end='') + print(spaces[-1]) + maxy -= step +print(' ' * z, ' '.join(str(i) for i in points), sep='') |