Dla 17 też mam TAK (błąd w pliku z testem), zaś 15 po rozrysowaniu nie ma sensu - stonogi zaczynają w pozycji, gdzie jedna stonoga przecina drugą… cóż, szukam dalej.
Może tutaj coś jest nie tak?
17
0 5 0 8 3
1 1 3 3 1
0 8 0 5 3
1 1 3 3 1
0 5 0 8 3
3 3 1 1 1
0 8 0 5 3
3 3 1 1 1
0 5 0 8 3
1 1 3 3 5
1 1 3 3 1
0 5 0 8 3
0 5 0 8 3
5 0 8 0 3
0 8 0 5 3
5 0 8 0 3
8 0 5 0 3
0 8 0 5 3
5 0 8 0 3
0 5 0 8 3
0 5 0 8 3
1 -1 3 -3 1
0 8 0 5 3
1 -1 3 -3 1
-5 0 -1 0 1
0 5 0 8 1
-1 0 -5 0 1
0 5 0 8 1
-1 0 -5 0 2
0 5 0 8 1
-1 -1 -3 -3 1
1 -1 3 -3 1
-1 -1 -3 -3 1
1 -1 3 -3 3
Out:
TAK
NIE
NIE
NIE
NIE
TAK
TAK
NIE
NIE
TAK
TAK
NIE
NIE
TAK
NIE
TAK
TAK
Szczerze mówiąc moja pomysłowość jest na wykończeniu. Może ktoś ma jakiś pomysł na test?
PS
Wstawione przeze mnie testy są prawidłowe
Policzone w pamięci (choć może bardziej wyobrażone) + program AC.
Zawsze brakowało mi wątku o stonogach na nowym forum, ale jak się okazało niesłusznie. Zadanie jest w gruncie rzeczy bardzo proste, a jedyną przyczyną moich trudności była moja własna głupota, która kazała mi demonizować to zadanie w takim stopniu, że zostawiłem je sobie na koniec i do tego zacząłem od copy-pastowania rozpatrującego wszystkie 10 możliwych przecięć bądź pokryć prostych (proste podzieliłem na poziomą, pionową i ukośną). Skoro już jednak to zrobiłem, mogłem wyassertować kilka rzeczy więc z całą pewnością mogę wam powiedzieć, że:
- (nie zaszkodzi powtórzyć
) nie należy wspominać całego mrowia postów z poprzedniego forum, jeżeli ktoś je jeszcze pamięta - ten bagaż należy zostawić przed wejściem na plac ze stonogami (alias @mariusz193 miał rację)
- Stonogi Pani Marii Sędzispoj to gatunek tak szybki, że nawet Jaś nie uchwyci, czy znajdują się one na granicy obszaru rozgrywki czy też nie. Z tego powodu nie należy oczekiwać złośliwych testów ze stonogami na granicy obszaru (a przynajmniej mój kod przechodzi dla obszaru mniejszego / większego bądź równego czemuś + EPS i dla obszaru mniejszego / większego od czegoś)
- Zawodnicy nie są głupi i wiedzą, że dwie stonogi pędzące na siebie to pewna kraksa. Z tego powodu nie zdarza się, aby dwie stonogi poruszały się po jednej prostej.
Ostatecznie mój kod uprościłem z 10 do zaledwie 3 przypadków, w których kolejnymi dość oczywistymi (dla mnie) ifami analizuję np. czy doszło do przecięcia torów ruchu stonóg. Złożoność logiczna zadania jest więc przeciętna jak na łatwe, ewentualnie lekko powyżej przeciętnej. Złożoność programistyczna jest elementarna - osobiście ułatwiłem sobie kodowanie poprzez numeric_limits::infinity(), ale bool is_inf zrobiłby to samu i wymusił napisanie nie więcej niż 10 dodatkowych linii kodu.