Submit | All submissions | Best solutions | Back to list |
MBPROB01 - History version in plaintext |
Zadanie powstało w związku z planowanym wprowadzeniem symbolicznych opłat za każde wysłane rozwiązanie, pobieranych niezależnie od języka programowania i od uzyskanego wyniku (AC, TLE, WA, CE, itd.). Opłaty będą pobierane po przekroczeniu limitu, liczonego oddzielnie dla każdego zadania. Popieram ten pomysł, z wielu powodów. Jednym z nich jest to, że przyszły programista powinien nie tylko umieć zaprojektować i zakodować program, wykorzystując znane [i nieznane] algorytmy, ale także nauczyć się i potrafić go debugować, testować i profilować u siebie na własnym komputerze. Mam nadzieję, że pomysł wprowadzenia opłat spowoduje albo się przyczyni do zwiększenia chęci nauki tych umiejętności. Rozwiązując to zadanie, uzyskasz narzędzie, którym będziesz mógł/mogła sprawdzić, ile by cię kosztowała dotychczasowa "działalność" na SPOJ'u, gdyby od początku były tego typu opłaty. Oczywiście tak obliczone (wsteczne) opłaty w żadnym wypadku nie będą pobierane, a moment wprowadzenie opłat zostanie wcześniej ogłoszony i dlatego rozwiązania do tego zadania i do wszystkich innych możesz jeszcze wysyłać w nieograniczonej ilośći, ale proszę, pośpiesz się, bo....
Tylko dziesięć pierwszych osób, które najszybciej przyślą prawidłowe rozwiązania, jako nagrodę uzyskają zwolnienie z przyszłych opłat, na okres jednego roku, liczonego od daty wprowadzenia opłat. Będzie to potwierdzone specjalnie przygotowanymi dyplomami.
Input
Plik tekstowy, zawierający historię zgłoszeń rozwiązań zadań.
Output
Wynik obliczeń, przyjmując bezpłatny limit w wysokości 10 zgłoszeń na jedno zadanie i opłatę za pierwsze zgłoszenie ponad limit w wysokości 1 gr. Opłata za każde następne zgłoszenie jest dwa razy większa od poprzedniej. Wynik, suma opłat, za wszystkie zgłoszenia ponad limit dla każdego zadania, należy podać z dokładnością do 1 gr.
Example
Input: ******************************************************************************** * Signed document issued by Sphere Online Judge (http://www.spoj.com) ******************************************************************************** ----- BEGIN OF DATA ----- Submissions by [name_of_user] in contest [SPOJ]. DoI: 2013-03-28 06:42:28. /------------------------------------------------------------------------------\ | ID | DATE | PROBLEM | RESULT | TIME | MEM | LNG | |---------|---------------------|-----------|-----------|-------|--------|-----| | 2943759 | 2009-11-09 15:58:14 | RNO_DOD | AC | 0.00 | 1996 | PAS | | 2943749 | 2009-11-09 15:54:25 | RNO_DOD | CE | 0.00 | 0 | C | | 2943742 | 2009-11-09 15:53:17 | RNO_DOD | CE | 0.00 | 0 | C | \------------------------------------------------------------------------------/ ----- SIGNATURE ----- EbrxPBxKmW8ClbqC+8GjYCdspKMB9kqtj8seGLVtM6oee4q9ND+4ObGUPttul24rlY1FrYXUc9zp ewqTTe524YS+qJJDQaJeC1TlIi5o2/cYSzknJ/txh2UQqZ8d+iuE8v14N34DkOtIZrsY5pbCuqrc OQYPipmGq90E5kvWS+I= ----- END OF DATA ----- ******************************************************************************** Disclaimer: Document for internal use only. No liability shall be assumed. ********************************************************************************
Output: 0
Wyjaśnienie:
Użytkownik tylko trzykrotnie zgłosił rozwiązanie jednego zadania: RNO_DOD, i nieprzekroczył limitu 10 bezpłatnych zgłoszeń na zadanie, więc całkowita opłata wynosi: 0.
Added by: | narbej |
Date: | 2013-03-22 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 SCM qobi |
Resource: | http://en.wikipedia.org/wiki/Wheat_and_chessboard_problem |
hide comments
|
|||||||||
2013-04-04 11:07:53 aa
@najber dzięki wielkie, czyli to wina tylko typów, przerzucę to na javę |
|||||||||
2013-04-04 06:22:03 narbej
@aa liczysz na typie double, dzięki czemu, rząd wielkości jest ok, ale gubiona jest dokładność. Potrzebny jest typ BigNum albo język, który obsługuje BigNum |
|||||||||
2013-04-02 18:47:02 narbej
@aa według moich obliczeń w tej chwili musiałbym zapłacić [moja aktualna historia zgłoszeń na pl.spoj.pl , specjalnie nic nie będę zgłaszał powyżej limitu] musiałbym zapłacić: 5316911983145114029800763561898911748 według ciebie: 5316911983145114283128080529109286912 czyli rząd wielkości się zgadza, ale te parę groszy robi mi [i sędziemu] różnicę. PS No niestety zgłosiłem jedno WA, czyli, jak chcesz korzystać z mojej historii, musisz pominąć wszystkie zgłoszenia po 1.04.2013 Last edit: 2013-04-02 23:02:39 |
|||||||||
2013-04-02 17:33:56 aa
@najber Mógłbyś sprawdzić co mam źle w programie? Przesiedziałem nad tymi kilkoma linijkami mnóstwo czasu i dalej nie mogę wymyslić co jest źle. Numer zgłoszenia 9025334 |
|||||||||
2013-04-02 09:15:55 narbej
@Artur Laskowski po kilku[nastu] próbach stwierdziłem, że awk jest fajnym językiem, ale być może tu się nie nadaje, albo trzeba coś w nim poustawiać. 10^22 # ok 10^23 # not ok 10^n # n>22 not ok 2^1000 #ok 2^1500 == inf 2^1000 + 1 # not ok 10^22+1 # not ok == 10^22 itd Być może, do wykonywania działań [+ -], awk dokonuje konwersji i w ten sposób gubi mniejszą liczbę. Przy mnożeniu [gdy wychodzi poza zakres] też się gubi. Zastanawiająca jest prawidłowa dokładność potęg 2 [aż do 2^1000], a potęg 10 już nie - inna procedura dla potęgowania 2? Nie udało mi się zmusić awk, do policzenia tego zadania ;-(, dla dużych wartości wynik jest odrobinę mniejszy i raczej sobie daruję, ale może tobie się uda? Last edit: 2013-04-02 09:23:24 |
|||||||||
2013-04-01 23:33:57 Artur Jarocki
To zadanie było chyba najbardziej udanym żartem na prima aprilis :D |
|||||||||
2013-04-01 21:56:22 Artur Laskowski
Nie chcę upubliczniać kodu, ponieważ podejrzewam, że jest bliski poprawności, mógłbym popsuć niektórym zabawę. Przede wszystkim zastanawiają mnie tak małe rozbieżności w wynikach. Gdyby ktoś znający się trochę lepiej na AWK zechciał pomóc, byłbym wdzięczny. Kontakt: imperator@boy.pl Last edit: 2013-04-01 21:56:48 |
|||||||||
2013-04-01 21:52:46 narbej
@Artur Rzeczywiście [musiałem trochę poczytać] używasz tablicy asocjacyjnej i powinno być ok. Więc w czym jest problem? Nie wiem. |
|||||||||
2013-04-01 20:26:55 Artur Laskowski
Oczywiście przewidziałem przeplatane zgłoszenia. Skorzystałem z tablic asocjacyjnych, więc nazwa zadania sama w sobie była adresem w tablicy :) Testy oczywiście robiłem na przemieszanych testach :) |
|||||||||
2013-04-01 18:12:50 narbej
@Artur, nie znam na tyle AWK, ale czy nie założyłeś, że rozwiązania tego samego zadania są po kolei, potem następne zadanie itd. Często jest to pomieszane i przeplatane, jedno zadanie, potem drugie, a po jakimś czasie znowu te pierwsze. Czasami może być jednak tak,[rzadko] i zależy od użytkownika, że zadania są "ładnie, po kolei" rozwiązywane i ułożone w historii zgłoszeń. Last edit: 2013-04-01 18:15:36 |