Ekonomická situace způsobila, že se mnoho společností zadlužilo.
Každá ze společností může být jak věřitelem (prodává své výrobky),
tak dlužníkem (kupuje suroviny a polotovary). Aby bylo možno
minimalizovat celkovou zadluženost, bylo dohodnuto, že je možné,
aby se společnosti oddlužily tím, že své pohledávky u jedněch společností
budou splácet pohledávkami u jiných společností. Jestliže například
společnost 1 dluží 100$ společnosti 2, společnost 2 dluží společnosti 3 50$
a společnost 3 dluží společnosti 1 75$, je celkový dluh 225$, ale
po započtení vzájemných pohledávek dluží společnost 1 společnosti 2 25$
a společnost 3 dluží společnosti 2 25$, takže celkový dluh myní činí pouze 50$.
Společnosti jsou identifikovány celými čísly. Můžete předpokládat, že
jich není více než 1000. Dluh je uveden v celých jednotkách měny.
Úloha
Vytvořte soubor DLUHY.PAS a uložte do něj program, který dělá postupně
následující:
ze vstupního souboru DLUHY.DAT přečte počet vzájemných pohledávek
ze vstupního souboru DLUHY.DAT přečte N řádků vzájemných pohledávek ve tvaru dlužníkvěřiteldluh
do výstupního souboru DLUHY.RES zapíše celkový dluh
vyřídí vzájemné pohledávky tak, aby celkový dluh byl minimální
do souboru DLUHY.RES zapíše seznam zbývajících dluhů ve tvaru dlužníkvěřiteldluh (každou položku na nový řádek)
do souboru DLUHY.RES uvede celkový výsledný dluh následovaný prázdným řádkem
Celou činnost program opakuje, dokud nepřečte celý vstupní soubor DLUHY.DAT.
V jednom souboru může být více zadání samostatných úloh.
Město je protkáno sítí rovnoběžných silnic, jdoucích od západu
na východ a od severu na jih. Silnice jsou očíslovány celými čísly.
Na okraji města existují 2 na sebe kolmé silnice s čísly 0. Čísla
ostatních silnic znamenají vzdálenost této silnice od silnice s číslem 0,
která je s ní rovnoběžná. Křižovatka silnic je označena dvojicí čísel (i,j),
kde i je číslo silnice vedoucí od západu na východ a j je číslo silnice
vedoucí ze severu na jih. Na všech křižovatkách je zakázáno odbočovat
vlevo a rovněž je zakázáno kdekoliv na silnici se otáčet. Je dán seznam
křižovatek, které musíme navštívit. Vaším úkolem je určit, v jakém pořadí
je možné projet zadanými křižovatkami tak, abychom dodrželi pravidla
silničního provozu, nikde neprotnuli svoji dráhu a abychom navštívili
všechny zadané křižovatky. Předpokládá se při tom, že při cestě není
potřeba doplňovat pohonné hmoty.
Úloha
Vytvořte soubor MESTO.PAS a vložte do něj program, který dělá následující:
ze vstupního souboru MESTO.DAT načte postupně řádky s dvojicemi čísel
i, j identifikujícími křižovatky, dokud není soubor vyčerpán.
Určí počet různých křižovatek N na vstupu a zapíše jej do výstupního
souboru MESTO.RES.
Do výstupního souboru MESTO.RES zapíše na N řádků dvojice čísel označující
křižovatky v pořadí, v němž budou navštíveny.