Forum jest zablokowane. Podczas blokady nie można dodawać ani edytować wiadomości.
Ostatnie posty
Poziom uczestników z rankingu B ostatnio się znacząco obniżył.
Może dobrym pomysłem byłoby losowanie koszulek dopiero po zakończeniu zawodów lub z 3,4-rundowym opóźnieniem?
Również uważam, że kultowe koszulki potyczek powinny być rozdawane na podstawie rankingu A+B. Oczywiście nadal można dzielić zadania, jakkolwiek czasami zadania z A są łatwiejsze od tych z B. Myślę, że się każdy zgodzi, że zadania A z pierwszych 2 rund nie są trudniejsze od zadań B z ostatniej rundy. Argument, że najsłabsi będą zniechęceni raczej nie działa, ponieważ przy obecnym poziomie nie podniosło by to zauważalnie progu (w tym roku 27 pkt, co jest wynikiem żenującym).
Może dobrym pomysłem byłoby losowanie koszulek dopiero po zakończeniu zawodów lub z 3,4-rundowym opóźnieniem?
Również uważam, że kultowe koszulki potyczek powinny być rozdawane na podstawie rankingu A+B. Oczywiście nadal można dzielić zadania, jakkolwiek czasami zadania z A są łatwiejsze od tych z B. Myślę, że się każdy zgodzi, że zadania A z pierwszych 2 rund nie są trudniejsze od zadań B z ostatniej rundy. Argument, że najsłabsi będą zniechęceni raczej nie działa, ponieważ przy obecnym poziomie nie podniosło by to zauważalnie progu (w tym roku 27 pkt, co jest wynikiem żenującym).
> Może należało ograniczyć przedział współrzędnych (do 10^5), tak aby rozwiązania n log^2 n działały nieco szybciej?
To akurat można sobie zrobić samemu (i moje rozwiązanie to robi), wystarczy posortować i przenumerować współrzędne.
To akurat można sobie zrobić samemu (i moje rozwiązanie to robi), wystarczy posortować i przenumerować współrzędne.
2014-05-19 00:30:00: "opublikujemy do wtorku 20 maja do 20.00"
Wydawać by się mogło, że taki komunikat oznacza jednak coś innego niż "opublikujemy we wtorek o 20:00". :(
Wydawać by się mogło, że taki komunikat oznacza jednak coś innego niż "opublikujemy we wtorek o 20:00". :(
IRC ma nieco mniejszą stałą czasową. To rozmowa. W usenecie zadaje pytanie, ktoś je widzi po 3h godzinach albo pojutrze, 15 min pisze odpowiedź...
IRC jest zdecydowanie lepszy, jeśli jest dużo ludzi, duży ruch i mnóstwo powtarzalnych problemów. "gcc mi się nie kompiluje" czy "czar wskrzeszenia zwłok znika kurze jaja z ekwipunku":) Byłby może niezłym pomysłem na czas potyczek, chociaż mam wrażenie, że nawet na forum z roku na rok coraz mniejszy ruch.
Na usenecie natomiast dyskusja trwa nawet jak jest ogólnie 10 aktywnych osób i 1 aktualnie przegląda;) Drzewiastość wątków zapobiega też temu, że istotna informacja utonie w dalszej dyskusji nad szczegółem albo wyższością javy nad c.
Na ludzi jest nadzieja, na pl.scomp.programming metytoryczny ruch jest malutki, na pl.sci.matematyka znikomy, ale ludzie tam czasem zaglądają. Tylko nie wpisują własnych problemów. Gdyby coś się zaczęło dziać, mogli by się uaktywnić.
Można też wyjść poza hierarchie pl.* matmy tam sporo, ale nic o algo nie grupy poświęconej tylko algorytmom i nie będącej bardzo specjalistyczną (comp.games.development.programming.algorithms:) nie widzę.
IRC jest zdecydowanie lepszy, jeśli jest dużo ludzi, duży ruch i mnóstwo powtarzalnych problemów. "gcc mi się nie kompiluje" czy "czar wskrzeszenia zwłok znika kurze jaja z ekwipunku":) Byłby może niezłym pomysłem na czas potyczek, chociaż mam wrażenie, że nawet na forum z roku na rok coraz mniejszy ruch.
Na usenecie natomiast dyskusja trwa nawet jak jest ogólnie 10 aktywnych osób i 1 aktualnie przegląda;) Drzewiastość wątków zapobiega też temu, że istotna informacja utonie w dalszej dyskusji nad szczegółem albo wyższością javy nad c.
Na ludzi jest nadzieja, na pl.scomp.programming metytoryczny ruch jest malutki, na pl.sci.matematyka znikomy, ale ludzie tam czasem zaglądają. Tylko nie wpisują własnych problemów. Gdyby coś się zaczęło dziać, mogli by się uaktywnić.
Można też wyjść poza hierarchie pl.* matmy tam sporo, ale nic o algo nie grupy poświęconej tylko algorytmom i nie będącej bardzo specjalistyczną (comp.games.development.programming.algorithms:) nie widzę.
Zgadzam się. Z konkretnym problemem można udać się na SO. Ale wymienić się jakimiś ciekawymi zadaniami? No, niestety nie. Popatrzę na CodeForces, przyznam się, że pomimo, iż zadania tam pojawiające się śledzę to blogi mnie nie przyciągnęły. A może faktycznie warto się nimi zainteresować.
Bartłomiej Szczygieł: Z tymi forami to czy ja wiem? Raczej dużo off-topu widzę. Tylko nikogo, kto by się interesował algo na poziomie wyższym, niż sumy prefiksowe w O(n). ;)
Natomiast usenet jest ciekawą propozycją, alternatywnie właśnie IRC. Tutaj jeszcze trochę osób żyje. Tylko znów brak ludzi do rozmowy o matematyce czy algorytmach. Jest natomiast sporo osób, które świetnie ogarniają różne dziedziny IT. Zarówno programowanie (nisko oraz wysoko poziomowe), elektronikę, radia jak i nowe technologie czy security.
Bartłomiej Szczygieł: Z tymi forami to czy ja wiem? Raczej dużo off-topu widzę. Tylko nikogo, kto by się interesował algo na poziomie wyższym, niż sumy prefiksowe w O(n). ;)
Natomiast usenet jest ciekawą propozycją, alternatywnie właśnie IRC. Tutaj jeszcze trochę osób żyje. Tylko znów brak ludzi do rozmowy o matematyce czy algorytmach. Jest natomiast sporo osób, które świetnie ogarniają różne dziedziny IT. Zarówno programowanie (nisko oraz wysoko poziomowe), elektronikę, radia jak i nowe technologie czy security.
Nie wiem czy wszyscy jeszcze patrzą na stronę główną konkursu, ale pojawił się na niej odnośnik do ankiety na temat tegorocznych Potyczek. Wydaje mi się, że osoby piszące i czytające ten wątek będą zainteresowane :)
Ja bym jeszcze proponował, żeby przy uruchomieniu próbnym limit na rozmiar pliku wejściowego pozwalał na wysłanie maxtestu. Można niby to obejść generując dane w programie zamiast wczytywania ich z wejścia, ale strasznie to niewygodne...
Do rozwiązywania konkretnych problemów stackexchange/stackoverflow. Tylko tam nie da się 'sobie pogadać'. Z większością współczesnych forów jest podobnie (moderator tępi odnogi zamyka temat). Można wrócić do korzeni, czyli na usenet;> Z grubsza pasującą istniejącą grupą jest np pl.comp.programming. Ma dwie zasadnicze wady: aktywnych grypowiczów niewiele (usenet zdycha, wszystko na facebooku ;/ ), no i wolność okupiona jest potrzebą ręcznego zajmowania się trollami.
Moje uwagi:
1. Ogólne wrażenia z konkursu mam bardzo pozytywne. Jak zwykle wysoki poziom zadań i ich przygotowania, ciekawe i naturalne problemy, dobry support, platforma...
2. Obawiałem się, że runda rozproszona będzie wpadką/porażką, ale tak się nie stało. Tutaj również uznanie dla organizatorów. Ostatecznie nawet na Windowsie można było zrobić te zadania :P Trochę tylko ciężko się robiło stress-testy (tzn. tysiące małych testów kontra brut), bo program się uruchamia przez 3 sekundy.
3. Trochę rzeczywiście zabrakło bardzo trudnych zadań. DRU było fajne (ciągle nie wiem jaką złożoność ma moje rozwiązanie), CIA też (i cóż z tego, że mało kto ma 10), ale tak poza tym to góra rankingu jest wyjątkowo zbita. Np. miejsca 5. i 24. w niefinalnym rankingu dzieli 6 punktów. Bardzo penalizuje to tracenie punktów za bugi w rozwiązaniach (patrz Wojtek), bo nie ma jak tego nadrobić.
4. Liczyłem na to, że po migracji na nową platformę SIO2, forum będzie wreszcie miało najważniejszy feature, jaki każdy silnik forum powinien mieć, czyli "pokaż nieprzeczytane posty", ale niestety nie. W związku z tym ciągle musiałem sobie zapisywać, do której godziny mam przeczytane posty, żeby nie czytać dwa razy tego samego.
5. PLE było jednak trochę dziwne. Testy powinny być lepsze i wyłapywać rozwiązania niepoprawne albo bardzo wolne. Ale jednak trudno jest dopuszczać rozwiązania O(n log^2 n) ze sporą stałą, a zabijać O(n^2) z optymalizacjami, bo przy n=10^5 ich czasy działania są podobne. Problem mógłby być rozwiązany przez większe n, ale wtedy jest inny kłopot: kto uwierzy, że ma wzorcówkę (czy raczej, algorytm, który dostanie 10 pkt.), jeśli jego program działa 20-30 sekund? Może należało ograniczyć przedział współrzędnych (do 10^5), tak aby rozwiązania n log^2 n działały nieco szybciej? Trudno powiedzieć. Pewnie organizatorzy mieli te same problemy.
6. Już ktoś wyżej to pisał - fajnie byłoby po zakończeniu system testu widzieć od razu wyniki rundy (np.: 27 punktów). To chyba jedyna rzecz, która w poprzednim SIO była lepsza. Ale za to fajnie, że są wyniki także wszystkich poprzednich zgłoszeń. Można od razu zobaczyć, ile punktów dostałyby nasze poprzednie podejścia. Właściwie, to czy nie byłoby wyników szybciej, gdyby podzielić system testy na dwie fazy - pierwsza testowałaby każdemu tylko ostatnie zgłoszenia do każdego z zadań, a dopiero druga testowała te wcześniejsze?
7. PLE nie miało dobrych testów, ale inne zadania miały bardzo dobre/mocne. Np. DRU.
Ogołnie bardzo mi się podobało i dziękuję organizatorom za miło (jakkolwiek męcząco :P) spędzony tydzień :)
1. Ogólne wrażenia z konkursu mam bardzo pozytywne. Jak zwykle wysoki poziom zadań i ich przygotowania, ciekawe i naturalne problemy, dobry support, platforma...
2. Obawiałem się, że runda rozproszona będzie wpadką/porażką, ale tak się nie stało. Tutaj również uznanie dla organizatorów. Ostatecznie nawet na Windowsie można było zrobić te zadania :P Trochę tylko ciężko się robiło stress-testy (tzn. tysiące małych testów kontra brut), bo program się uruchamia przez 3 sekundy.
3. Trochę rzeczywiście zabrakło bardzo trudnych zadań. DRU było fajne (ciągle nie wiem jaką złożoność ma moje rozwiązanie), CIA też (i cóż z tego, że mało kto ma 10), ale tak poza tym to góra rankingu jest wyjątkowo zbita. Np. miejsca 5. i 24. w niefinalnym rankingu dzieli 6 punktów. Bardzo penalizuje to tracenie punktów za bugi w rozwiązaniach (patrz Wojtek), bo nie ma jak tego nadrobić.
4. Liczyłem na to, że po migracji na nową platformę SIO2, forum będzie wreszcie miało najważniejszy feature, jaki każdy silnik forum powinien mieć, czyli "pokaż nieprzeczytane posty", ale niestety nie. W związku z tym ciągle musiałem sobie zapisywać, do której godziny mam przeczytane posty, żeby nie czytać dwa razy tego samego.
5. PLE było jednak trochę dziwne. Testy powinny być lepsze i wyłapywać rozwiązania niepoprawne albo bardzo wolne. Ale jednak trudno jest dopuszczać rozwiązania O(n log^2 n) ze sporą stałą, a zabijać O(n^2) z optymalizacjami, bo przy n=10^5 ich czasy działania są podobne. Problem mógłby być rozwiązany przez większe n, ale wtedy jest inny kłopot: kto uwierzy, że ma wzorcówkę (czy raczej, algorytm, który dostanie 10 pkt.), jeśli jego program działa 20-30 sekund? Może należało ograniczyć przedział współrzędnych (do 10^5), tak aby rozwiązania n log^2 n działały nieco szybciej? Trudno powiedzieć. Pewnie organizatorzy mieli te same problemy.
6. Już ktoś wyżej to pisał - fajnie byłoby po zakończeniu system testu widzieć od razu wyniki rundy (np.: 27 punktów). To chyba jedyna rzecz, która w poprzednim SIO była lepsza. Ale za to fajnie, że są wyniki także wszystkich poprzednich zgłoszeń. Można od razu zobaczyć, ile punktów dostałyby nasze poprzednie podejścia. Właściwie, to czy nie byłoby wyników szybciej, gdyby podzielić system testy na dwie fazy - pierwsza testowałaby każdemu tylko ostatnie zgłoszenia do każdego z zadań, a dopiero druga testowała te wcześniejsze?
7. PLE nie miało dobrych testów, ale inne zadania miały bardzo dobre/mocne. Np. DRU.
Ogołnie bardzo mi się podobało i dziękuję organizatorom za miło (jakkolwiek męcząco :P) spędzony tydzień :)
Jeśli nie musi być po polsku, to na CodeForces robi się coraz lepsze "community". Nie ma wprawdzie typowego forum, tylko zbiór blogów z komentarzami, ale działa to raczej dobrze.
Albo chociaż w paczkach z testami udostępniać plik .yml albo pliki .time (abc1c.time) zawierające dopuszczalny czas na test. Oskryptowałem sobie sprawdzanie poprawności moich rozwiązań lokalnie, ale nie mogę sprawdzać czy czas jest dobry... A tak to bym sobie też sprawdzanie czasu dopisał.
Potyczki są chyba najlepiej przygotowanym, utrzymanym na najwyższym poziomie polskim konkursem algorytmicznym. Dostarczają ciekawych zadań, posiadają przyjazną stronę, wsparcie. I tutaj, jak poprzednicy dziękuję za miło spędzony czas.
Trochę bardziej szczegółowo.
Może zacznę od rund rozproszonych. Odbieram je bardzo pozytywnie. Pomysł jest bardzo dobry. Wykonanie też było dobre. Aczkolwiek, wszystkie zadania opierały się o rozproszoną analizę dużych danych. Szczerze się przyznam, iż liczyłem na zadanie, które będzie składać się z małych danych a problemem będą równoległe obliczenia.
Szkoda trochę, że nie są dopuszczone wątki. Fajnie by było, gdyby jednak można było z nich korzystać przy zadaniach ze zwykłym pomiarem czasu (a nie liczby taktów).
Nowa strona? Brakuje kilku funkcjonalności, poprawiłbym forum, ale ogólnie jestem jak najbardziej na tak! Cieszę się z migracji na SIO2.
No i chyba najważniejsza kwestia. Jeśli chodzi o zadania to były one ciekawe. Trochę mi nie poszły, ale to nie wpływa na moją ocenę (o dwieście miejsc, raczej nie spadnę i na koszulkę się załapie, więc nie jestem niezadowolony). Został jednak pewien niedosyt. Zabrakło mi kilku dziedzin, ale zadania były dobre i to chyba najważniejsze. Zatem ogólnie ten aspekt odbieram pozytywnie.
Jeśli chodzi o testy... tu zgadzam się niestety z poprzednikami. Testy przechodziły rozwiązania dalekie od wzorcowych. Zgadzam się z tym, co pisze Maciej. To jest trochę nie fair. Brut O(n^2) na 10? Serio?
Też biorę w obronę ranking [B], ale niech będą tam prostsze zadania a nie akceptowane gorsze rozwiązania!
No i chyba poruszyłem wszystkie kwestie... Może jeszcze sobie pozwolę powiedzieć coś bardziej ogólnego. Potyczki są naprawdę fajne. Zrzeszają wiele osób zainteresowanych tą tematyką. A chyba nie jest to zbyt częste. W Hyde Parku pojawiło się pytanie o forum dla algorytmików, ale nie doczekało się odpowiedzi... Nie ma dla nas miejsc? Może pora to zmienić?
Zatem trochę szkoda, że są tylko raz w roku. Aczkolwiek chyba częściej bym nie chciał (mogłoby to się odbyć kosztem jakości albo spowszechnienia). Pomyślałbym natomiast o wprowadzeniu np. jednego zadania co dwa czy trzy miesiące. To tylko kilka zadań a na pewno zostałoby to odebrane pozytywnie, w końcu zadania z PA to jedne z najciekawszych pojawiających się zadań. No i sam konkurs zapewnił miło spędzony czas, nie tylko mi. Ciesze się, że jest on realizowany. :)
Raz jeszcze dziękuję całej ekipie PA za ten miło spędzony czas!
Trochę bardziej szczegółowo.
Może zacznę od rund rozproszonych. Odbieram je bardzo pozytywnie. Pomysł jest bardzo dobry. Wykonanie też było dobre. Aczkolwiek, wszystkie zadania opierały się o rozproszoną analizę dużych danych. Szczerze się przyznam, iż liczyłem na zadanie, które będzie składać się z małych danych a problemem będą równoległe obliczenia.
Szkoda trochę, że nie są dopuszczone wątki. Fajnie by było, gdyby jednak można było z nich korzystać przy zadaniach ze zwykłym pomiarem czasu (a nie liczby taktów).
Nowa strona? Brakuje kilku funkcjonalności, poprawiłbym forum, ale ogólnie jestem jak najbardziej na tak! Cieszę się z migracji na SIO2.
No i chyba najważniejsza kwestia. Jeśli chodzi o zadania to były one ciekawe. Trochę mi nie poszły, ale to nie wpływa na moją ocenę (o dwieście miejsc, raczej nie spadnę i na koszulkę się załapie, więc nie jestem niezadowolony). Został jednak pewien niedosyt. Zabrakło mi kilku dziedzin, ale zadania były dobre i to chyba najważniejsze. Zatem ogólnie ten aspekt odbieram pozytywnie.
Jeśli chodzi o testy... tu zgadzam się niestety z poprzednikami. Testy przechodziły rozwiązania dalekie od wzorcowych. Zgadzam się z tym, co pisze Maciej. To jest trochę nie fair. Brut O(n^2) na 10? Serio?
Też biorę w obronę ranking [B], ale niech będą tam prostsze zadania a nie akceptowane gorsze rozwiązania!
No i chyba poruszyłem wszystkie kwestie... Może jeszcze sobie pozwolę powiedzieć coś bardziej ogólnego. Potyczki są naprawdę fajne. Zrzeszają wiele osób zainteresowanych tą tematyką. A chyba nie jest to zbyt częste. W Hyde Parku pojawiło się pytanie o forum dla algorytmików, ale nie doczekało się odpowiedzi... Nie ma dla nas miejsc? Może pora to zmienić?
Zatem trochę szkoda, że są tylko raz w roku. Aczkolwiek chyba częściej bym nie chciał (mogłoby to się odbyć kosztem jakości albo spowszechnienia). Pomyślałbym natomiast o wprowadzeniu np. jednego zadania co dwa czy trzy miesiące. To tylko kilka zadań a na pewno zostałoby to odebrane pozytywnie, w końcu zadania z PA to jedne z najciekawszych pojawiających się zadań. No i sam konkurs zapewnił miło spędzony czas, nie tylko mi. Ciesze się, że jest on realizowany. :)
Raz jeszcze dziękuję całej ekipie PA za ten miło spędzony czas!
Zerkając na test nie widzę w nim nic specjalnego.
Czy miales algorytm typu:
Wczytac skarb, wrzucic {w*y + h*x, w*y - h*x, +v} do tablicy.
Wczytac straznika, wrzucic {w*y + h*x, w*y - h*x, -v} do tablicy.
Posortować tablicę.
Analizować ją jednym przejściem?
Sprowadza to przykład z treści zadania do:
$ ./muz-debug < 0.in
17,-13 3
18,-6 -5
18,6 2
25,-5 8
25,7 -3
27,-15 4
29,-1 -6
36,-12 1
result: 6
Jeśli tak to w http://pastebin.com/rKsWGUXp jest wynik mojego preprocessing'u i możesz se porównać.
Czy miales algorytm typu:
Wczytac skarb, wrzucic {w*y + h*x, w*y - h*x, +v} do tablicy.
Wczytac straznika, wrzucic {w*y + h*x, w*y - h*x, -v} do tablicy.
Posortować tablicę.
Analizować ją jednym przejściem?
Sprowadza to przykład z treści zadania do:
$ ./muz-debug < 0.in
17,-13 3
18,-6 -5
18,6 2
25,-5 8
25,7 -3
27,-15 4
29,-1 -6
36,-12 1
result: 6
Jeśli tak to w http://pastebin.com/rKsWGUXp jest wynik mojego preprocessing'u i możesz se porównać.
> Wymyślisz algorytm optymalny lub prawie optymalny, zaimplementujesz ...
Problem właśnie w tym że były tak dobrane testy, że w niektórych zadaniach poświęcanie czasu na wymyślanie i kodowanie optymalnego (czy bardziej optymalnego) algorytmu było strzelaniem sobie w nogi. Z drugiej strony nigdy nie wiadomo jak będą testy i czasy dobrane, więc nie można sobie pozwolić na wysłanie tylko bruta. To de fakto zwiększa losowość wyników.
W sumie PLE można było na innych testach/czasach/limicie pamięciowym dać w rankingu A, a na większych limitach w rankingu B. Ale przechodzenie N*N na 10 pkt w rankingu A jest _dalece_ nie fair dla tych co z góry założyli, że N*N tutaj, tak ja w DRU, zaliczy 3-4 punkty.
Problem właśnie w tym że były tak dobrane testy, że w niektórych zadaniach poświęcanie czasu na wymyślanie i kodowanie optymalnego (czy bardziej optymalnego) algorytmu było strzelaniem sobie w nogi. Z drugiej strony nigdy nie wiadomo jak będą testy i czasy dobrane, więc nie można sobie pozwolić na wysłanie tylko bruta. To de fakto zwiększa losowość wyników.
W sumie PLE można było na innych testach/czasach/limicie pamięciowym dać w rankingu A, a na większych limitach w rankingu B. Ale przechodzenie N*N na 10 pkt w rankingu A jest _dalece_ nie fair dla tych co z góry założyli, że N*N tutaj, tak ja w DRU, zaliczy 3-4 punkty.
Jeśli nie znasz (nie umiesz wygooglac:) algorytmu na odległość edycyjną, wymyślenie go jest trudniejsze niż wymyślenie czegoś na KOL.
Broniłbym oddzielnego rankingu B. Odciąża on nieco osoby walczące głównie o koszulkę, daje im priorytet, najpierw B, potem, po doszlifowaniu, A. Branie maksimum z dwóch nieopisanych zwiększyło by losowość, ktoś miałby pecha zająć się trudniejszym, wzór Macieja zachęca natomiast do wrzucenia dwóch brutów.
Ludzie z A+B mogą natomiast sobie dobrać zadanie. Wiedzieć, które będzie łatwiejsze to też sztuka i element strategii. Regularnie to zadanie oblewam;)
Bardzo nie podoba mi się pomysł z różnicowaniem punktów za czas. To właśnie jest fajne w PA, że to konkurs typowo algorytmiczny, nie koderski. Wymyślisz algorytm optymalny lub prawie optymalny, zaimplementujesz, nie musisz bawić się w przesadną optymalizacje, własne kontenery...
Jedno zadanko na aproksymacje nie zaszkodzi. Tylko program musi znać limit czasu! Zadanko może nawet w takiej formie: http://en.wikipedia.org/wiki/Anytime_algorithm
Broniłbym oddzielnego rankingu B. Odciąża on nieco osoby walczące głównie o koszulkę, daje im priorytet, najpierw B, potem, po doszlifowaniu, A. Branie maksimum z dwóch nieopisanych zwiększyło by losowość, ktoś miałby pecha zająć się trudniejszym, wzór Macieja zachęca natomiast do wrzucenia dwóch brutów.
Ludzie z A+B mogą natomiast sobie dobrać zadanie. Wiedzieć, które będzie łatwiejsze to też sztuka i element strategii. Regularnie to zadanie oblewam;)
Bardzo nie podoba mi się pomysł z różnicowaniem punktów za czas. To właśnie jest fajne w PA, że to konkurs typowo algorytmiczny, nie koderski. Wymyślisz algorytm optymalny lub prawie optymalny, zaimplementujesz, nie musisz bawić się w przesadną optymalizacje, własne kontenery...
Jedno zadanko na aproksymacje nie zaszkodzi. Tylko program musi znać limit czasu! Zadanko może nawet w takiej formie: http://en.wikipedia.org/wiki/Anytime_algorithm