vstup = map(int, raw_input().split(' ')) # Poznámka: vstup máme načtený jako pole, jelikož # se ale ve skutečnosti jedná o kruh, budeme při # každé práci s indexy modulit délkou vstupu # (modulit znamená vzít zbytek po celočíselném dělení) soucet = sum(vstup) n = len(vstup) # Pro každou skupinku si budeme udržovat dvojici: # konec skupinky, součet časů ve skupince a = {'index': 0, 'soucet': 0} b = {'index': 0, 'soucet': None} # Jak by to vypadalo, kdybychom dali dokumenty # prvnímu a poslednímu ze skupiny while a['soucet'] < soucet / 2: a['soucet'] += vstup[a['index']] a['index'] += 1 b['soucet'] = soucet - a['soucet'] nejlepsi = None # Dosud nejlepší nalezené rozdělení # Každého maximálně dvakrát přeřadíme do jiné # skupinky, pak už budou stavy, které jsme už probrali for _ in range(2*n): # Posuneme konec příslušné skupinky if a['soucet'] > b['soucet']: b['soucet'] += vstup[b['index']] a['soucet'] -= vstup[b['index']] b['index'] = (b['index'] + 1) % n else: a['soucet'] += vstup[a['index']] b['soucet'] -= vstup[a['index']] a['index'] = (a['index'] + 1) % n # Kvalitu rozdělení můžeme měřit rozdílem součtu # časů daných skupinek, pokud je rozdíl nula # lepšího rozdělení nemůžeme dosáhnout ztrata = abs(a['soucet'] - b['soucet']) if nejlepsi is None or ztrata < nejlepsi[0]: nejlepsi = (ztrata, a['index'], b['index']) # Máme výsledné rozdělení do skupinek, # dokumenty tedy stačí umístit na jeden # ze dvou "přelomů" skupinky print (a['index'], (a['index'] - 1) % n)