# Principled Programming / Tim Teitelbaum / Chapter 5. def e5_1_1() -> None: """ Print grades.""" grade: int = int(input()) # Next grade to be processed, or -1. while grade != -1: print(grade) grade = int(input()) def e5_1_2() -> None: """Count grades.""" grade: int = int(input()) # Next grade to be processed, or -1. count: int = 0 # The number of grades processed so far. while grade != -1: count += 1 grade = int(input()) print(count) def e5_1_3() -> None: """Average grade.""" grade: int = int(input()) # Next grade to be processed, or -1. count: int = 0 # The number of grades processed so far. sum: int = 0 # The sum of the grades processed so far. while grade != -1: count += 1; sum = sum + grade grade = int(input()) if count == 0: print("no grades") else: print(sum / count) def e5_1_4() -> None: """Highest grade.""" grade: int = int(input()) # Next grade to be processed, or -1. highest: int = -1 # The highest grade processed while grade != -1: if grade > highest: highest = grade; grade = int(input()) if highest == -1: print("no grades") else: print(highest) def e5_1_5() -> None: """Distribution of grades.""" grade: int = int(input()) # Next grade to be processed, or -1. freq = [0] * 101 # For 0≤k≤100, freq[k] is number of grades of k processed so far. while grade != -1: freq[grade] += 1 grade = int(input()) print("grade frequency") for g in range(101): print( g, freq[g]) def e5_2_1() -> None: """ Given 0 or more nonnegative inputs followed by a stopping signal of -1, output the equivalent run-encoded sequence followed by -1 -1. """ v: int = int(input()) # Next integer to be processed, or -1. r: int = v # The run prefix is of r values. n: int = 0 # The processed prefix has length n. while v != -1: if v==r: n += 1 else: print( r, n ) r = v; n = 1 v = int(input()) if n != 0: print(r, n); print("-1 -1") def e5_2_2() -> None: """ Given zero or more pairs of integers ⟨r,n⟩, each pair representing a run encoding of n r’s, followed by the pair ⟨-1,-1⟩, output the decoding, followed by -1. """ r, n = input().split(); r = int(r); n = int(n) while r != -1: for k in range (0,n): print( r ) r, n = input().split(); r = int(r); n = int(n) print(-1) # Uncomment line to run. #e5_1_1() #e5_1_2() #e5_1_3() #e5_1_4() #e5_1_5() #e5_2_1() #e5_2_2()