Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
AL_11_06 - Cyrklem i linijką |
Na kilku ostatnich lekcjach matematyki cała klasa Janka z zainteresowaniem słuchała Pani Basi, która tłumaczyła, jak wykonywać różne konstrukcje geometryczne sposobem klasycznym, czyli przy użyciu jedynie cyrkla i linijki. Dzieci potrafią już np. wyznaczyć środek danego odcinka, dwusieczną kąta, a nawet prostą równoległą do danej prostej tak, aby przechodziła przez pewien określony punkt.
Dzisiejsza lekcja dotyczyła wielokątów foremnych. Pani Basia pokazała jak skonstruować trójkąt równoboczny i kwadrat o bokach równych danemu odcinkowi. Pani poprosiła też, aby jako zadanie domowe, dzieci spróbowały skonstruować inne wielokąty foremne. Janek bez problemu wykreślił sześciokąt foremny, a jako bardzo zdolny uczeń poradził sobie też z konstrukcją pięciokąta. Utknął jednak przy siedmiokącie. I tu nasunęły mu się pytania: Czy samym cyrklem i linijką da się skonstruować każdy wielokąt foremny? A jeśli nie, to które można? Janek doszedł więc do wniosku, że przydałby mu się program, który obliczy ile wielokątów foremnych z danego zbioru, da się skonstruować w klasyczny sposób, czyli jedynie cyrklem i linijką.
Wejście
W pierwszej linii liczba t (0 < t ≤ 1000000) oznaczająca liczbę zbiorów wielokątów foremnych (przypadków testowych).
W każdej z kolejnych t linii dwie liczby całkowite a i b (3 ≤ a ≤ b ≤ 264–1) oznaczające, że rozpatrujemy zbiór, w którym znajduje się b–a+1 różnych (co do liczby boków) n-kątów foremnych, takich że a ≤ n ≤ b.
Wyjście
Dla każdego przypadku testowego jedna liczba całkowita oznaczająca ile wielokątów z tego zbioru można skonstruować przy użyciu jedynie cyrkla i linijki.
Przykład
Wejście: 3 3 8 15 17 180 190
Wyjście: 5 3 0
Dodane przez: | Witold Długosz |
Data dodania: | 2013-07-25 |
Limit czasu wykonania programu: | 1s-7s |
Limit długości kodu źródłowego | 10000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU |
Pochodzenie: | ALGOLIGA |
ukryj komentarze
2013-10-20 12:50:23 Krzysztof Wojnar
re Witold Długosz Zgadza się, to chyba jedyna trudność. Tylko widać nasze nie chcą "zgrać się" z twoim. |
|
2013-10-20 12:44:58 Witold D³ugosz
Praktycznie jedyna trudność w tym zadaniu polega na właściwym wygenerowaniu zbioru liczb (który jest przecież do znalezienia w Internecie). Jeśli teraz dodałbym dodatkowy test, byłoby to nie w porządku względem tych osób, które (często po wielu próbach) zaliczyły to zadanie. |
|
2013-10-20 09:43:56 Krzysztof Wojnar
Przyłączam się do prośby o testy. Jako że ja w Pythonie, wielkie n nie stanowi problemu. edit: poprawki nie pomogły. Ostatnio edytowany: 2013-10-20 12:18:53 |
|
2013-10-19 21:04:46 Micha³ Szumski
Czy organizatorzy mogliby popatrzeć na problem w moim programie? Algorytm wydaje się być poprawny i przetestowany dokładnie, a pomimo to cały czas WA |
|
2013-10-19 16:18:07 Witold D³ugosz
Noo, raczej nie, ale podpowiem, że wszyscy, którzy próbują, mają problem tylko dla dużych wartości n. Ostatnio edytowany: 2013-10-19 16:32:42 |
|
2013-10-19 15:29:34 Adam B±k
Można prosić o jakiś jeszcze jeden test? |
|
2013-10-19 14:47:09 Przemek Komosa
Ok, znalazłem Wydaje mi się, że mam poprawny algorytm. Witold, mógłbyś porównać nasze kody i potwierdzić, że to u mnie jest błąd? Ostatnio edytowany: 2013-10-19 15:05:59 |