Temat: Co zrobić, by Potyczki były lepsze?

Napisałem trochę tekstu w ankiecie i stwierdziłem, że się podzielę. Co sądzicie o mojej opinii?

Forma rund zdalnych jest już chyba tradycją potyczek, jednak, jak już wspominałem wyżej, jest dość wyczerpująca, czasochłonna i wydaje się być troszkę niemiarodajna. Z przede wszystkim dwóch powodów - nie każdy może sobie pozwolić na tak długą pracę (czego beneficjentami są od razu licealiści i niektórzy studenci) i często dzieją się dziwne punktowe dziwactwa. Prawdopodobnie większość uczestników straciło punkty na różnego rodzaju wpadkach, jednak niespowodowanych brakiem poprawnego pomysłu, tylko drobną techniczną wpadką. Przywołam w tym miejscu przykład Mariusza Treli, który rozwiązał jedno z najtrudniejszych zadań konkursu (bilard Hilberta) i otrzymał zero za to rozwiązanie z powodu absurdalnie małego (w porównaniu do całości) błędu, gdyż wypisywał (1, 0) zamiast (0, 1) w jednym brzegowym przypadku. Takie sytuacje są odpowiedzialne za randomizowanie rankingu. Oczywiście można się spierać, że Potyczki są konkursem informatycznym, a nie matematycznym i umiejętność poprawnego testowania rozwiązania również jest ważna. Wpływa to jednak na konieczność dłuższego siedzenia nad zadaniem (które nota bene i tak jest zwykle trudne), a i tak cięzko uniknąć róznego rodzaju wpadek.

Moją propozycją byłoby swojego rodzaju odsłanianie lub "pretesty", tak jak jest to odpowiednio na Olimpiadzie Informatycznej i Codeforces. Pretesty mogłyby na przykład polegać na tym, że odsłonięty jest wynik za połowę (parzyste lub pierwsze pół) testów w zadaniu. W ten sposób udałoby się choć odrobinę wpłynąć na wspomniane przeze mnie niedogodności.

Pozdrawiam serdecznie,
Kacper Walentynowicz
Popieram pomysł z pretestami - chociaż pytanie jest wtedy, czy dawać testy uwalające heury w zadaniach heurogennych do pretestów. Moim zdaniem w przypadku takich zadań typu Szeregowanie testy uwalające w przypadku wprowadzenia pretestów powinny być schowane w głównych testach.
Jest mnóstwo konkursów algorytmicznych i forma rundy zdalnej potyczek wyróżnia się tym, że jest testem mocy a nie szybkości.
Zadania są trudne ale ma się na nie dużo czasu. Dla mnie to duży plus.

Licealiści muszą chodzić do szkoły, studenci na zajęcia, programiści do pracy... Najtrudniejsza runda jest w weekend.
Argument o czasochłonności uważam za bardzo chybiony i byłbym smutny gdyby potyczki stały się konkursem z bardzo ograniczonym czasem i prostszymi zadaniami (kopią CF czy TC).

Co do pretestów to są zazwyczaj na forum. Nie sądzę, żeby to coś pomogło. Innym rozwiązaniem jest od razu pełny feedback jak na hackerranku.


@Maciej Gawron
"Licealiści muszą chodzić do szkoły ..."
Własnie problem polega na tym, że niektórzy mogą sobie pozwolić na mniejszą bądź większą absencję dla Potyczek, dzięki czemu mają dużo więcej czasu.
Urokiem Potyczek faktycznie jest to, że rundy zdalne są długie i trudne. Ale czy nie lepszym pomysłem byłyby na przykład trzy rundy weekendowe z dwoma zadaniami do A i B? Byłoby to z pewnością inne, jednak zachowalibyśmy prestiżowy charakter konkursu, a udałoby się wyeliminować znużenie spowodowane "muszę siedzieć po kilka(naście) godzin dziennie przez cały tydzień".
Dla mnie najfajniejsze w PA jest właśnie to, że formuła wyróżnia się na tle zawodów "sprinterskich" typu ACM czy TopCoder.
Wydaje mi się, że przy rundach trwających przynajmniej 36h jest większa szansa, że każdy znajdzie klika godzin w dogodnym dla siebie momencie niż gdyby rundy były krótkie.
Jasne, że najłatwiej było startować w trakcie studiów bo olać całkowicie kilka dni to zazwyczaj żaden problem ;)
I tak wydaje mi się, że sytuację poprawiło wyrzucenie kilka lat temu ostatniej, trudnej rundy poniedziałkowo-wtorkowej.

"Prawdopodobnie większość uczestników straciło punkty na różnego rodzaju wpadkach, jednak niespowodowanych brakiem poprawnego pomysłu, tylko drobną techniczną wpadką."
I tak właśnie powinno być :) Porządne przetestowanie swoich rozwiązań jest częścią rozwiązania.
Pamiętam jak podczas swoich startów w liceum potrafiłem często wymyślić optymalne rozwiązanie ale w co drugim zadaniu robiłem jakiegoś głupiego buga, którego nie umiałem znaleźć (szczególnie polegając tylko na wątpliwej jakości testach z forum) i traciłem z tego powodu mnóstwo punktów. Z kolei w tym roku nie straciłem ani jednego punktu w ten sposób - traciłem tylko na nieoptymalnych złożonościach.
To zdecydowanie jest umiejętność, której można się nauczyć z czasem i praktyką.
I tak mam wrażenie, że organizatorzy starają się trochę pomóc w testowaniu - np. w zadaniach z biblioteczką, gdzie dołączona przykładowa implementacja biblioteki jest praktycznie gotową sprawdzaczką do zadania.
A ja bym wydłużył rudny do drugiej, trzeciej rano :)
Co do formuły tygodnia zadań po min. 36h - wydaje mi się, że jest to właśnie dobra forma dla Potyczek. Jest ciekawa, wymaga mobilizacji przez dłuższy czas. Owszem, nie każdy jest w stanie znaleźć czas na każde zadanie - ale z kolei proponowana forma zadań np. w trzy kolejne weekendy spowoduje zbyt dużą rozwlekłość i znów uderzy w tych, którzy nie mają wówczas czasu. Nie uda się znaleźć idealnego czasu, a wydaje mi się, że obecna forma daje duże możliwości wygospodarowania czasu na przynajmniej część zadań. I jest to dodatkowo oryginalna formuła, wizytówka Potyczek.
Szkoda 3 weekendów z życia, na jedne PA. Bardzo dobrze jest teraz, konkurs nie jest dla mięczaków.

Jak sobie poradzić, żeby przejść przez PA na pełnej kurze?

- Licealiści: olać szkołę albo zorganizować ferie świąteczne czy tydzień z Jasełkami w trakcie PA.
- Studenci: złamać nogę (byle nie rękę - chyba, że klepiecie kod nogami), zrobić operację plastyczną lub po prostu wziąć zwolnienie lekarskie.
- Pracownicy: wziąć urlop/chorobowe albo iść na bezrobocie (dobry wynik w PA oznacza, że na pewno szybko znajdziecie nową pracę).

Jeśli powyższe sposoby się nie sprawdzą, pomóc może jeszcze Kapitan Kox. Po szczegółowe instrukcje odsyłam na YouTube (nie będę wrzucał linku, bo treść jest 18+).