From 36461ea5c65fcdf7169abdb39549ef53a15d4f03 Mon Sep 17 00:00:00 2001 From: Raphael McSinyx Date: Sun, 12 Feb 2017 22:18:09 +0700 Subject: Add /r/dailyprogrammer Challenge #302 [Intermediate] and slightly clean up --- daily/302intermediate/barchart.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 daily/302intermediate/barchart.py (limited to 'daily/302intermediate/barchart.py') 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='') -- cgit 1.4.1