NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Soutěž: Machr na OOP - Tvorba silniční sítě

Soutěž již skončila

Zadání

Vítám Vás u dalšího machra na OOP a algoritmy. Vašim úkolem bude navrhnout silniční síť pro část krajiny podle zadaných kritérií. Algoritmus a OOP budou hodnoceny nezávisle na sobě. Placky budou rozdány pro OOP i pro algoritmus.

Povolené jazyky jsou kromě C# také Java, C++ a PHP. Další jazyky po konzultaci se mnou. Pokud povolím další jazyk, uvedu to v komentářích, proto prosím čtěte i komentáře.

Zadání

Program si bude muset přečíst data ze souboru input.txt a výstup uložit do souboru output.txt. Program se bude skládat z několika částí, které lze do určité míry řešit samostatně. Celkový počet bodů bude rozdělen mezi pod úkoly. Souřadnice jsou udávány v pravoúhlém souřadnicovém systému. Ukázkový „input.txt“ :

MESTA
0: 12.60; 14.80
1: 18.40; 20.40
2: 14.60; 18.70

SILNICE
0: 14; 3.00
1: 25; 2.00
2: 48; 0.50

FINANCE
565

PODMINKY
1; 2; 4.00
0; 2; 21.60

KRAJINA
2.50; 5.00; 6.00; 10.00; 11.00
0.40; 2.00; 2.00; 2.20; 3.10

1. - Program v souboru dostane tabulku měst a dostupných silnic. Město je určeno svou pozicí v pravoúhlé soustavě souřadnic. Silnice je určena svoji cenou a časem, který odpovídá jednotkové délce silnice (řekněme 1 kilometr). Města budou vždy minimálně dvě, cesta vždy minimálně jedna.

  • Město s indexem 0 je na pozicích X[12.6, 14.8]
  • Město s indexem 1 je na pozici Y[18.4, 20.4]
  • Silnice s indexem 0 stojí 14 korun na jednotku délky a cesta bude trvat 3 minuty
  • Pokud postavím silnice typu 0 mezi městy s indexy 0 a 1, bude cena dálnice |XY|*14 = 8 * 14 = 112 korun a cesta bude trvat |XY| * 3.0 = 24 minut. Poznámka: |XY| je vzdálenost mezi městy 0 a 1.

Vašim úkolem bude spojit všechny města tak, aby se dalo z každého města dostat do libovolného jiného města (každé město musí být připojeno k silniční síti). Silnice můžou být pouze přímé a postaveny mezi dvěma městy.

2. - V souboru budou dále uvedeny finance a podmínky, které silniční síť musí splňovat. Finance bude číslo, které nesmíte překročit. Podmínky jsou definované jako index počátečního města, index cílového města a čas, který nesmí cesta překročit.

  • Celkem mám na výstavbu 565 korun
  • Z města o indexu 1 se musím dostat do města o indexu 2 za 4 minuty
  • Z města o indexu 0 se musím dostat do města o indexu 2 za 21.6 minuty

Úkolem bude navrhnout silniční síť tak, aby podmínky splnila a nepřekročila dostupné finance. Počet dostupných financí bude v souboru vždy, podmínky být uvedeny nemusí (poté by byl uveden pouze nápis PODMINKY bez záznamů). Počet řešení, které podmínky i maximálně finance splňují, může být několik. Stačí vypočítat pouze jedno.

3. - V souboru bude uveden seznam krajin, které se v regionu vyskytují. Rychlost provozu na silnici závisí na vzhledu krajiny. Krajina může rychlost provozu zpomalit nebo zrychlit. První číslo je konstanta, která bude násobit čas pro danou silnic v této krajině. Další čtyři parametry určují obdélník (krajiny mají pouze obdélníkový tvar) – počáteční bod (x,y) a rozměry obdélníku (šířka a výška).

  • První krajina násobí potřebný čas konstantou 2.5 – bude-li silnice o indexu 0 probíhat touto krajinou, je potřeba počítat 2.5*3.0=7.5 minuty na jednotku délky.
  • První krajina má levý horní roh v souřadnicích 5,6 a dolní pravý roh v souřadnicích 5+10 = 15, 6+11 = 17.

Vašim úkolem bude navrhnout silniční síť tak, aby byly splněny předcházející podmínky a zároveň byly do výpočtu zahrnuty krajiny.

Čísla, která jsou zapsány v ukázkovém vstupním souboru s desetinou čárkou, budou mít vždy dvě desetinná čísla. Počet různých měst, cest, podmínek a krajin může být maximálně 1000.
Testovací soubory budou připraveny tak, že bude vždy možné spojit všechny města, dodržet podmínky a vlézt se do rozpočtu – bude vždy existovat alespoň jedno řešení. Pro úspěšné splnění testu stačí najít pouze jedno řešení.

Připravil jsem testovací soubory, na kterých můžete aplikaci vyzkoušet. Můžete je najít zde.

Výstupní formát

Do výstupního souboru bude program vypisovat pouze silnice, které budou spojovat jednotlivé města. Bude se jednat o sérii celých čísel, oddělené středníkem. Bude uvedeno město, ze kterého silnice vychází, dále město, do kterého silnice vede a typ silnice, kterou program použil. Pro ukázkový příklad a první úkol (spojení všech měst), může soubor vypadat následovně:

0;1;1
1;2;2

Město o indexu 0 je spojeno s městem o indexu 1 silnicí typu 1. Město o indexu 1 je spojeno s městem o indexu 2 silnicí typu 2.

Výhra

Vítěz dostane placku Machr na OOP nebo algoritmus a ocenění do portfolia.

Výhra

Výsledky

Jméno bodů Řešení ( Stáhnout vše )
tomisoka 50 Stáhnout řešení
JOF 41 Stáhnout řešení
Neaktivní uživatel 35 Stáhnout řešení
Ladislav Ondris 5 Stáhnout řešení
Neaktivní uživatel 0 Stáhnout řešení
Patrik Smělý 0 Stáhnout řešení
Honza Bittner 0 Stáhnout řešení

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Odpovídá na Patrik Valkovič
Štefan Pružinský:30.9.2015 19:13

Potom to však stráca zmysel... :(

Odpovědět
30.9.2015 19:13
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Patrik Valkovič
Ondřej Krsička:30.9.2015 19:24

Netuším, co bych měl hledat :D

 
Nahoru Odpovědět
30.9.2015 19:24
Avatar
vosa53
Člen
Avatar
Odpovídá na Štefan Pružinský
vosa53:30.9.2015 19:28

Přesně tak, je to přece machr na algoritmy a OOP, měli bychom to tudíž vymyslet sami. To už rovnou můžeme soutěžit kdo najde lepší algoritmus... Mně nejtěžší zatím příjde zjištění jak dlouhá část silnice a jestli vůbec koliduje s určitou krajinou.

 
Nahoru Odpovědět
30.9.2015 19:28
Avatar
Odpovídá na vosa53
Patrik Valkovič:30.9.2015 20:37

Jestli silnice koliduje s jinou je pouze analytická geometrie, nic víc.
Je to machr na algoritmy, ne machr na tvoření algoritmu. Ty algoritmy už byli vymyšleny kvůli jejich univerzálnosti. Když budeš řešit nějakou úlohu, budeš si vždy vymýšlet algoritmus? no to není jen najít si algoritmus, jde i o to algoritmus správně implementovat na určitý problém, který řešíš. Taky je potřeba umět algoritmy "zřetězit", abys dostal požadovaný výsledek. U této úlohy je algoritmů hned několik (v základu 2), ale je třeba také řešit spoustu věcí okolo. Nemyslím si, že by šo vymyslet algoritmus, který by nahradil již existující s tím, že by byl efektivnější. Padla tady zmínka o hrubé síle - ale jak dlouho to bude počítat? Něco nového jen těžko vymyslíš.

Nahoru Odpovědět
30.9.2015 20:37
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
vosa53
Člen
Avatar
Odpovídá na Patrik Valkovič
vosa53:30.9.2015 21:07

Ok, asi máš pravdu. :)

Editováno 30.9.2015 21:08
 
Nahoru Odpovědět
30.9.2015 21:07
Avatar
Patrik Smělý
Tvůrce
Avatar
Patrik Smělý:2.10.2015 14:27

Sakra, omylem jsem klikl na tlačítko odevzdat :D to tam není žádná ochrana ? Vždyť jsem ani nevybral žádný soubor ...

 
Nahoru Odpovědět
2.10.2015 14:27
Avatar
Odpovídá na Patrik Smělý
Patrik Valkovič:2.10.2015 14:30

Ošetřené to není, ale myslím že David to už má v TODO listě ;-)

Nahoru Odpovědět
2.10.2015 14:30
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Patrik Smělý
Tvůrce
Avatar
Odpovídá na Patrik Valkovič
Patrik Smělý:2.10.2015 14:32

Však to snad je funkce formulářové frameworku, teda aspoň u svého to tak mám :D. No to je jedno každopádně se omlouvám :).

 
Nahoru Odpovědět
2.10.2015 14:32
Avatar
Odpovídá na Patrik Valkovič
Ondřej Langr (andysekcze):2.10.2015 14:33

TODO: udělat si TODO list? :D... Just a joke. Nebýt línej tak se taky účastním :-P

Nahoru Odpovědět
2.10.2015 14:33
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Neaktivní uživatel:2.10.2015 21:07

No, tak se přiznejte, pokročil někdo ?
Já už si s tím lámu hlavu skoro týden a pořád mně nenapadlo nic uspokojivého.
Googlil jsem několik hodin a taky jsem nic podnětného nenašel. I když je pravda že jsem vyzjistil že to nějak souvisí s teorií grafů atd, nicméně o této problematice nevím téměř nic. V podstatě jsem jen věděl že něco takového existuje...

Největší trable mám asi s tou variabilitou typů silnic, která nabourá každý můj nápad,ale nejsem si jistý že by to fungovalo i kdybych tenhle faktor opomenul. Konzultoval jsem tenhle problém už i s kolegy z VŠ, ale ani tam jsem moc neuspěl :(

Nahoru Odpovědět
2.10.2015 21:07
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Štefan Pružinský:2.10.2015 21:50

Tak, musím sa priznať, že som sa na to pozrel zhruba na nejakých 5 hodín. Idem z farbou von...rozmýšľal som nad vytvorením grafu na základe pomeru dĺžka/krajina (podla Primovho algoritmu) a následnom "spĺňaní" daných podmienok. Spĺňanie podmienok malo prebiehať podľa už vypočítaného grafu, avšak spätne:

mám nejakú cestu z mesta A do mesta B a vyskúšam, či spĺňa podmienky. Ak nie, tak sa presuniem o 1bod (=mesto) dozadu a od neho urobím cestu priamo k cieľu. Následne overujem, či cesta spĺňa podmienky. Ak nie, celý postup opakujem (=zase o 1 dozadu atď).

Problém je v tom, že tento algoritmus je v istých situáciach nesprávny... Rozmýšľal som aj nad nájdením najefektívnejších ciest spĺňajúcich podmienky a následnom prevedení Primovho algoritmu... Bohužiaľ, je potrebné nájsť akýsi prienik medzi najefektívnejším spojením ciest a najefektívnejším splnení podmienok. To sa mi zatiaľ bohužiaľ nedarí. :(
Čo sa týka výpočtu dĺžky v krajine, či mimo...je to úplne jednoduché. Ešte dodám, že som ešte nerozmýšľal nad detekciou krajín. Ale o tom potom. :) Vonkoncom máme ešte týždeň a ja dúfam, že ešte niečo vymyslíme a dotiahneme to do úspešného konca. :)

Nahoru Odpovědět
2.10.2015 21:50
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Ladislav Ondris:2.10.2015 22:03

Hodně štěstí přeju všem :-) je to těžká úloha, to se musí uznat :-D

Já myslím, že jsem přišel na algoritmus, který by mi to mohl vyřešit. Samozřejmě si budu muset ještě dost věcí upravit podle sebe, aby to fungovalo, jak chci já. Uvidíme, jestli ten algoritmus vlastně půjde použít, protože se vždycky může naskytnout nějaký nečekaný problém :-)

Nahoru Odpovědět
2.10.2015 22:03
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
Odpovídá na Štefan Pružinský
Neaktivní uživatel:2.10.2015 22:11

ano, Dijkstrův algoritmus jsem taky zvažoval,ale na něj se mi nepodařilo aplikovat ten problém s výběrem typů silnic/spojů... To je zatím asi největší překážka, jinak kolize a délky silnic mám již také vypočítávané,ale zatím jsem se ani nedostal k tomu, abych je uvažoval jako kritérium při hledání.

Nahoru Odpovědět
2.10.2015 22:11
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Štefan Pružinský:2.10.2015 22:32

Aha...a máš už aj niečo napísané, alebo ťa stále púta papier a pero? :D U mňa je to vo fázy začiatku...mám už nejaké myšlienky a taktiež Parser, ale hlavná fáza začína až na ďalší týždeň. Tento týždeň bola čistá nestíhačka. :)

Nahoru Odpovědět
2.10.2015 22:32
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Štefan Pružinský
Neaktivní uživatel:3.10.2015 8:13

No já mám napsaný ten parser a vizualizaci, abych to viděl přímo tak jak to je, a mohl si to kontrolovat na konkrétním příkladu.Takže vždycky myšlenku zkouším přímo kódem,ale prostě mně zatím nenapadlo žádné uspokojivé řešení, a musím konstatovat že u malého množství bodů se mi zatím opravdu nejlépe osvědčila metoda částečného brute-force :D :D

Nahoru Odpovědět
3.10.2015 8:13
Neaktivní uživatelský účet
Avatar
JOF
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
JOF:4.10.2015 12:45

Taky předpokládám, že využiju algoritmus pro nalezení minimální kostry z teorie grafů, ale pro další optimalizace už nic obecného neznám :-(

 
Nahoru Odpovědět
4.10.2015 12:45
Avatar
Neaktivní uživatel:4.10.2015 15:50

Tak, zatím bez uvažování efektu krajin, jsem se snažil nějak udělat algoritmus hledání minimální kostry,do kterého bych později mohl aplikovat i další podmínky, nicméně se mi nedaří, ho vyladit.

viz. screen -> to rozhodně není nejefektivnější silniční síť :(

Editováno 4.10.2015 15:51
Nahoru Odpovědět
4.10.2015 15:50
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:4.10.2015 18:53

A pokud by se někdo chtěl trochu zasmát, tak se mi shodou několika náhod a omylů v algoritmu zřejme podařilo nechtěně vyřešit "problém obchodního cestujícího"

Nahoru Odpovědět
4.10.2015 18:53
Neaktivní uživatelský účet
Avatar
Patrik Valkovič:4.10.2015 19:57

No jsem moc moc zvědavý na řešení :)

Nahoru Odpovědět
4.10.2015 19:57
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Ladislav Ondris:5.10.2015 22:21

Můj algoritmus na vytvoření silniční sítě funguje, řekl bych, pěkně. Avšak bez ostatních věcí (krajina, podmínky), ale to snad stihnu do neděle dodělat :-) Stačí si najít vhodný algoritmus, který by se do tohoto případu hodil a upravit ho. :-)

Nahoru Odpovědět
5.10.2015 22:21
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
Odpovídá na Ladislav Ondris
Ondřej Krsička:6.10.2015 19:57

Držím pěsti. :) Pro mě je to jiná liga :D

 
Nahoru Odpovědět
6.10.2015 19:57
Avatar
Odpovídá na Ondřej Krsička
Ladislav Ondris:6.10.2015 20:33

Je to velice těžká úloha. Spousty problému, které se musí řešit. Nejtěžší je vymyslet jak. Pokusím se to hlavně dodělat tak, aby to fungovala jak má. :-)

Nahoru Odpovědět
6.10.2015 20:33
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
Odpovídá na Ladislav Ondris
Ondřej Krsička:6.10.2015 20:56

To jo no.
PS: Máš dobrý motto, ikdyž já někdy dělám chyby i při jednoduchých problémech :D

 
Nahoru Odpovědět
6.10.2015 20:56
Avatar
rdaek
Člen
Avatar
rdaek:7.10.2015 17:05

Napadá mě spočítat vzdálenost mezi městy a pospojovat vždy nejkratší které ještě není v síti.. Škoda že teď nemám moc času jinak bych se zapojil :/

Nahoru Odpovědět
7.10.2015 17:05
Důležité je udělat program blbuvzdorným... Je pravda že mi často dost vzdorují :D
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:9.10.2015 19:25

A bude až skonci soutez nekde na stahnuti spravne reseni (me by zajimalo jak se to melo udelat)

 
Nahoru Odpovědět
9.10.2015 19:25
Avatar
Odpovídá na Martin Skalík
Patrik Valkovič:9.10.2015 19:27

Já jsem řešení nevypracoval, takže jedině musíš počkat, jestli úlohu někdo vyřeší. Můžu poté napsat maximálně postup, jakým se to mělo řešit.

Nahoru Odpovědět
9.10.2015 19:27
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Patrik Valkovič
Ondřej Krsička:9.10.2015 21:20

To je velká škoda. Snad to někdo vyřešil, a snad pochopitelně a čitelně :D každopádně ti sem dám všechno co jsem udělal. Lepší jak to nechat v "šuplíku".

 
Nahoru Odpovědět
9.10.2015 21:20
Avatar
Odpovídá na Ondřej Krsička
Ladislav Ondris:9.10.2015 21:59

Mně už zbývají jen podmínky. Jestli se mi podaří, tak ale bohužel moc čitelné nebudou :-D :-D

Nahoru Odpovědět
9.10.2015 21:59
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
Odpovídá na Patrik Valkovič
Ondřej Krsička:9.10.2015 23:14

Nesliboval jsi Patriku nějakou nápovědu?

 
Nahoru Odpovědět
9.10.2015 23:14
Avatar
Odpovídá na Ondřej Krsička
Patrik Valkovič:10.10.2015 10:32

Sliboval, ale potom se tu začali objevovat komentáře, podle kterých to vypadalo, že jste na správné cestě, tak jsem neradil.

Nahoru Odpovědět
10.10.2015 10:32
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Ondřej Krsička:11.10.2015 11:25

Nejde mi to odevzdat, po kliknutí to ukáže, že stránka nejde zobrazit

 
Nahoru Odpovědět
11.10.2015 11:25
Avatar
Odpovídá na Ondřej Krsička
Michal Žůrek - misaz:11.10.2015 11:29

prohlížeč? verze? ....?

 
Nahoru Odpovědět
11.10.2015 11:29
Avatar
Odpovídá na Ondřej Krsička
Michal Žůrek - misaz:11.10.2015 11:29

velikost zip archívu?

 
Nahoru Odpovědět
11.10.2015 11:29
Avatar
Odpovídá na Ondřej Krsička
Patrik Valkovič:11.10.2015 11:55

Pokud to nepůjde, tak to dej někam na internet a pošli mi odkaz to do zpráv.

Editováno 11.10.2015 11:56
Nahoru Odpovědět
11.10.2015 11:55
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Patrik Valkovič
Ondřej Krsička:11.10.2015 12:57

No, stejně toho mám málo, tak to sem ani nebudu dávat.

 
Nahoru Odpovědět
11.10.2015 12:57
Avatar
Odpovídá na Ondřej Krsička
Michal Žůrek - misaz:11.10.2015 13:00

pošli i když máš málo, algoritmy mají být malé.

 
Nahoru Odpovědět
11.10.2015 13:00
Avatar
Patrik Valkovič:11.10.2015 13:03

Ondřej Krsička - pošli mi co máš, nezapomínej, že je to machr i na OOP.

Nahoru Odpovědět
11.10.2015 13:03
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Patrik Valkovič:11.10.2015 13:04

Machr skončil, další práce se už neberou v potaz.
Dejte mi teď chvíli čas. Vzhledem ke komplexnosti zadání mi chvíli potrvá, než to zhodnotím, tak buďte prosím trpěliví.

Nahoru Odpovědět
11.10.2015 13:04
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Ladislav Ondris:11.10.2015 13:18

Já toho taky mám málo :) ale kódu spoustu :-D :-D no..u jednoduších testovacích souborů to celkem funguje, ale u těch těžších už to má problém. Je tam ještě spoustu chyb a nedostatků :-D

Nahoru Odpovědět
11.10.2015 13:18
Pokud neděláš chyby, nepracuješ na dostatečně těžkých problémech.
Avatar
Patrik Valkovič:11.10.2015 13:19

Popravdě, mě se právě rozbil generátor inputů :D Takže trpělivost ;-)

Nahoru Odpovědět
11.10.2015 13:19
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Patrik Valkovič:11.10.2015 13:58

Jeden z ukázkových input souborů :)

MESTA
0; 6.35; 23.59
1; 26.95; 5.26
2; 24.80; 32.37
3; 36.08; 9.60
4; 32.30; 14.66
5; 4.72; 6.86
6; 29.50; 29.69
7; 36.30; 20.85
8; 1.08; 32.33
9; 16.73; 26.33
10; 6.92; 29.87
11; 4.38; 30.03
12; 10.31; 32.76
13; 2.90; 15.62
14; 23.40; 15.36
15; 19.82; 24.70
16; 36.69; 8.63
17; 4.97; 3.57
18; 16.31; 14.03
19; 3.47; 26.16
20; 3.59; 33.41
21; 24.04; 5.98
22; 34.37; 15.43
23; 13.13; 25.79
24; 5.10; 10.56
25; 2.02; 37.44
26; 14.18; 4.79
27; 27.52; 16.49
28; 19.21; 36.92
29; 34.95; 32.03
30; 29.46; 20.46
31; 26.20; 16.94
32; 34.84; 20.02
33; 10.17; 20.87
34; 24.72; 32.73
35; 4.54; 27.05
36; 28.86; 30.57
37; 22.73; 13.51
38; 5.82; 38.40
39; 35.66; 34.88
40; 19.64; 17.11
41; 10.52; 12.84
42; 13.33; 22.38
43; 10.51; 31.90
44; 21.11; 28.48
45; 24.36; 19.39
46; 19.08; 11.44
47; 7.21; 7.10
48; 11.14; 14.34
49; 5.25; 32.26
50; 1.07; 12.36
51; 6.03; 14.98
52; 8.58; 23.61
53; 22.05; 14.01
54; 10.67; 20.81
55; 1.26; 0.08
56; 9.94; 13.37
57; 3.61; 12.46
58; 9.51; 18.27
59; 39.76; 36.24
60; 8.38; 25.15
61; 7.97; 17.43
62; 33.88; 39.60
63; 6.30; 38.72
64; 27.26; 21.32
65; 29.62; 27.38
66; 16.03; 38.15
67; 6.81; 38.36
68; 13.80; 26.91
69; 17.81; 3.55
70; 18.13; 19.00
71; 39.04; 24.34
72; 13.20; 33.84
73; 3.50; 38.68
74; 4.84; 26.99
75; 32.50; 4.83
76; 3.99; 20.88
77; 7.01; 31.15
78; 29.73; 22.45
79; 7.71; 11.95
80; 33.54; 19.94
81; 10.45; 25.02
82; 36.32; 11.78
83; 6.55; 5.25
84; 38.65; 22.60
85; 8.42; 32.66
86; 7.02; 28.97
87; 18.39; 9.54
88; 35.22; 28.58
89; 16.48; 2.64
90; 34.88; 11.20
91; 34.17; 25.94
92; 31.35; 22.65
93; 37.18; 27.40
94; 39.39; 5.86
95; 10.01; 38.20
96; 8.55; 14.02
97; 28.01; 1.41
98; 27.29; 38.25
99; 0.03; 22.23

SILNICE
0; 15; 5.90

FINANCE
10000000

PODMINKY
15; 58; 4,042.51
67; 13; 4,432.47
61; 80; 7,025.57
90; 24; 4,702.80
80; 36; 10,321.75
11; 17; 9,181.71
73; 74; 12,849.40
90; 52; 9,226.13
2; 80; 10,908.87
41; 65; 9,203.01
17; 74; 7,996.48
10; 75; 11,062.49
25; 81; 3,158.13
7; 39; 1,396.81
58; 38; 2,331.88
49; 61; 3,523.08
91; 21; 720.51
12; 8; 18,444.59
40; 35; 4,871.15
8; 65; 16,473.94
8; 83; 15,518.70
60; 14; 3,771.09
85; 38; 6,899.10
32; 64; 5,124.71
12; 26; 5,822.71
5; 93; 7,543.47
35; 11; 13,818.09
68; 41; 4,847.21
48; 92; 4,259.27
87; 80; 5,778.44
73; 51; 11,732.81
65; 42; 9,077.15
87; 50; 4,338.69
25; 52; 6,828.60
61; 81; 155.32
11; 67; 4,861.84
72; 76; 15,298.84
56; 33; 4,504.59
14; 96; 5,877.37
89; 87; 6,145.50

KRAJINA
3.10; 6.35; 5.26; 20.60; 18.33
1.83; 9.60; 32.30; 22.77; 3.78
1.29; 4.38; 29.87; 2.54; 0.16
4.79; 27.38; 6.81; 10.77; 9.22
0.73; 22.65; 37.18; 4.75; 2.21
0.32; 16.98; 25.54; 11.66; 3.24
3.46; 4.51; 29.05; 35.06; 0.76
0.21; 4.15; 0.30; 26.90; 4.73
4.72; 32.35; 38.61; 6.72; 0.06
3.90; 38.35; 29.96; 0.59; 0.12
2.86; 0.84; 14.80; 2.04; 20.83
0.66; 33.10; 22.61; 0.58; 2.62
4.28; 36.83; 36.09; 0.97; 1.96
4.41; 3.71; 31.44; 3.81; 0.52
4.43; 30.09; 20.93; 4.54; 0.41
1.49; 4.48; 38.18; 16.34; 0.67
2.01; 31.66; 0.82; 6.42; 0.83
1.01; 9.29; 24.31; 9.20; 0.89
0.37; 3.18; 19.86; 2.36; 5.78
3.26; 35.90; 22.96; 0.31; 0.73
1.44; 19.66; 30.43; 2.76; 0.02
4.30; 33.84; 33.44; 0.44; 3.80
3.11; 33.04; 1.99; 3.65; 1.84
4.73; 38.36; 12.21; 0.62; 4.91
3.60; 34.18; 30.47; 0.38; 1.28
4.64; 37.17; 19.54; 1.41; 3.27
3.69; 3.51; 36.44; 11.06; 0.36
0.16; 1.03; 6.30; 2.67; 1.21
0.16; 36.79; 2.35; 0.73; 0.27
0.52; 4.89; 32.30; 4.17; 3.86
4.23; 29.34; 17.79; 1.74; 1.64
2.72; 37.73; 25.63; 1.27; 1.13
2.05; 14.74; 26.11; 1.20; 1.15
0.94; 1.94; 10.94; 2.75; 0.67
4.05; 3.05; 21.59; 0.08; 2.92
3.55; 21.06; 30.53; 6.55; 0.49
2.89; 33.11; 26.15; 1.48; 1.58
4.26; 4.42; 30.39; 0.78; 0.29
1.57; 35.83; 26.82; 1.98; 1.43
4.43; 17.72; 39.45; 19.55; 0.27
2.45; 29.98; 21.60; 1.57; 5.39
3.65; 6.09; 8.14; 0.07; 0.61
0.92; 29.79; 16.73; 7.46; 1.00
4.93; 33.19; 19.72; 0.49; 0.25
3.39; 4.04; 14.47; 0.09; 4.97
4.52; 39.73; 10.62; 0.07; 26.33
1.98; 29.02; 37.14; 0.55; 0.88
3.66; 13.37; 31.07; 20.34; 0.79
3.57; 4.47; 26.30; 7.70; 1.66
4.94; 31.29; 5.83; 4.11; 0.67
Nahoru Odpovědět
11.10.2015 13:58
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
JOF
Tvůrce
Avatar
Odpovídá na Patrik Valkovič
JOF:11.10.2015 17:25

Za prvním číslem u měst a silnic by měla být dvojtečka, ne? Takhle mi to nepřečte ...

 
Nahoru Odpovědět
11.10.2015 17:25
Avatar
Odpovídá na JOF
Patrik Valkovič:11.10.2015 17:29

Jo, omlouvám se, už jsem to upravil, má tam být tečka.
Když jsi se už ozval, co je nejasného na zadání

Program si bude muset přečíst data ze souboru input.txt a výstup uložit do souboru output.txt

??
Nedodržel jsi ani ukládání do souboru, ale ani formát. Tak mi řekni, jak to mám opravovat pro 50 vstupních souborů?

To zadání bylo takhle dáno úmyslně a ne ze srandy. Pokud byste něco takového udělali na vysoké (vysokoškoláci určitě potvrdí - Jindřich Máca), tak máte všechno špatně. Kontroluje to stroj, a pokud soubor nenajde, tak 0 bodů. A je jedno, jestli máte sebedokonalejší algoritmus.

Nahoru Odpovědět
11.10.2015 17:29
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
JOF
Tvůrce
Avatar
Odpovídá na Patrik Valkovič
JOF:11.10.2015 17:34

Jasně, nemám to hotové, psal jsem to.
Spíš jsem to posílal na posouzení tříd.
Ale podle zadání tam má být opravdu dvojtečka a ne středník ani tečka.

 
Nahoru Odpovědět
11.10.2015 17:34
Avatar
Patrik Valkovič:11.10.2015 18:52

Abyste neřekli, že se flákám, posílám menší ukázku :)
Jenkings a JOF jsou jedinné dvě řešení, které zvládly i něco víc, než jen základní vstupy (soubor o 2 nebo 4kb). Nicméně pro 15 a 24kb také v rozumném čase nic :)
Kód jsem ještě neprocházel, chystám se na něj ;-)

Nahoru Odpovědět
11.10.2015 18:52
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Patrik Valkovič
Neaktivní uživatel:11.10.2015 19:04

No, upřímně řečeno ten můj algoritmus taky nedělá skoro nic.
Povedlo se mi jen rozparsovat vstup a najít nějaký strom toho grafu. Jen jsem vymyslel nějaký svůj algoritmus, který vyhledává velice zajímavé grafy. Nicméně jsem měl co dělat, aby to fungovalo alespoň tak aby se propojily všechny města bez cyklů atd.

Měl jsem rozpracované i započítání efektů té krajiny,ale už jsem to ani nestihl dodělat. K podmínkám spojnic bych se z 99% ani nedostal vůbec :(

Nahoru Odpovědět
11.10.2015 19:04
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Ondřej Krsička:11.10.2015 19:30

Kde ty algoritmy hledáte, jak je upravujete, jak to všechno děláte? to je jako nějaká chytrá knížka, ve které to je, nebo co? Kdyžtak se někdo můžete na toto téma rozepsat / doporučit nějaký článek/knížku nebo tak něco.

 
Nahoru Odpovědět
11.10.2015 19:30
Avatar
Odpovídá na Ondřej Krsička
Neaktivní uživatel:11.10.2015 19:32

No já jsem nejdřív hledal nějaké algoritmy na internetu,ale nakonec jsem si napsal/vymyslel tak nějak vlastní ;) (co se týče tohohle konkrétního případu)

Už od začátku je to ale jen o tom mít analytické myšlení, a to se z knížky nenaučíš. Prostě si musíš ten problém dokázat představit nějak komplexně, a rozložit si ho na co největší množství malých podproblémů, které následně řešíš.

Editováno 11.10.2015 19:32
Nahoru Odpovědět
11.10.2015 19:32
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Ondřej Krsička:11.10.2015 19:49

Poradíš mi, jak toto trénovat?

 
Nahoru Odpovědět
11.10.2015 19:49
Avatar
Odpovídá na Ondřej Krsička
Patrik Valkovič:11.10.2015 19:52

Tak třeba tento případ. Co budeš řešit jako první věc?

Nahoru Odpovědět
11.10.2015 19:52
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 141.