HAI

I HAS A TUX

GIMMEH TUX

I HAS A FOO ITS 0

I HAS A BAR ITS 0

I HAS A BAZ ITS 0

I HAS A QUZ ITS 1

TUX IS NOW A NUMBR

IM IN YR LOOP NERFIN YR TUX TIL BOTH SAEM TUX AN 0

I HAS A PUR

GIMMEH PUR

PUR IS NOW A NUMBR

FOO R SUM OF FOO AN PUR

BAR R SUM OF BAR AN 1

BOTH SAEM BIGGR OF PRODUKT OF FOO AN QUZ AN PRODUKT OF BAR BAZ AN PRODUKT OF FOO AN QUZ

O RLY?

YA RLY

BAZ R FOO

QUZ R BAR

OIC

IM OUTTA YR LOOP

BAZ IS NOW A NUMBAR

VISIBLE SMOOSH QUOSHUNT OF BAZ QUZ

KTHXBYE




-----Input-----

The input contains between 1 and 10 lines, i-th line contains an integer number x_{i} (0 ≤ x_{i} ≤ 9).


-----Output-----

Output a single real number. The answer is considered to be correct if its absolute or relative error does not exceed 10^{ - 4}.


-----Examples-----
Input
3
0
1
1

Output
0.666667

Source: codeforces | Difficulty: MEDIUM_HARD
Tags: Flows and cuts

Tree algorithms

Implementation


Solutions:
foo = baz = 0
quz = 1
for bar in range(1, int(input()) + 1):
	foo += int(input())
	if foo * quz < baz * bar:
		break
	(baz, quz) = (foo, bar)
print(baz / quz)


tux = input()
(foo, bar, baz, quz) = (0, 0, 0, 1)
tux = int(tux)
for i in range(tux):
	pur = int(input())
	foo += pur
	bar += 1
	if foo * quz > bar * baz:
		baz = foo
		quz = bar
print(round(baz / quz, 6))


n = int(input())
(fo, br, bz, qu) = (0, 0, 0, 1)
for i in range(n):
	p = int(input())
	fo = fo + p
	br = br + 1
	if bz / qu <= fo / br:
		bz = fo
		qu = br
	else:
		break
print(bz / qu)


TUX = int(input())
FOO = 0
BAR = 0
BAZ = 0
QUZ = 1
for i in range(TUX):
	PUR = int(input())
	FOO = FOO + PUR
	BAR = BAR + 1
	if FOO * QUZ > BAZ * BAR:
		BAZ = FOO
		QUZ = BAR
print(BAZ / QUZ)


TUX = input()
FOO = 0
BAR = 0
BAZ = 0
QUZ = 1
TUX = int(TUX)
while TUX != 0:
	PUR = input()
	PUR = int(PUR)
	FOO = FOO + PUR
	BAR = BAR + 1
	if max(FOO * QUZ, BAR * BAZ) == FOO * QUZ:
		BAZ = FOO
		QUZ = BAR
	TUX = TUX - 1
BAZ = int(BAZ)
print(BAZ / QUZ)


(tux, foo, bar, baz, quz) = (int(input()), 0, 0, 0, 1)
while tux != 0:
	pur = int(input())
	foo += pur
	bar += 1
	if max(foo * quz, bar * baz) == foo * quz:
		baz = foo
		quz = bar
	tux -= 1
print(float(baz / quz))


tux = int(input())
foo = 0
bar = 0
baz = 0
quz = 1
for i in range(0, tux):
	pur = int(input())
	foo += pur
	bar += 1
	if foo * quz > baz * bar:
		baz = foo
		quz = bar
print('%.6f' % (baz / quz))


n = int(input())
A = []
sum = 0
for i in range(n):
	x = int(input())
	sum += x
	A.append(sum / (i + 1))
print('%.6f\n' % max(A))


numbers = []
highest = 0
for _ in range(int(input())):
	numbers.append(int(input()))
	if highest < sum(numbers) / len(numbers):
		highest = sum(numbers) / len(numbers)
print(highest)