Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
WWO_01_06 - Szybciej niż liniowo |
Dla danego ciągu liczb będziemy wykonywać dwie operacje:
- Zwiększamy wszystkie liczby z przedziału [a, b] o v
- Odpowiadamy na pytanie, czy liczba stojąca na k-tej pozycji jest liczbą pierwszą
Zadanie to rozwiąż szybciej niż liniowo dla każdej modyfikacji przedziału.
Wejście
W pierwszym wieszu znajduje się jedna liczba całkowita n ∈ [5, 105] określająca ilość liczb w ciągu.
W drugim wierszu znajduje się n liczb naturalnych nie większych niż 1000, są to kolejne liczby ciągu.
Następnie dana jest jedna liczba całkowita q1 ∈ [1, 105] określająca liczbę modyfikacji przedziałów.
W kolejnych q1 wierszach znajdują się po trzy liczby całkowite a, b oraz v, takie że 1 ≤ a ≤ b ≤ n oraz liczba v jest nie większa niż 100.
Następnie dana jest jedna liczba całkowita q2 ∈ [1, 1000] określająca liczbę zapytań.
Każde zapytanie składa się z jednej liczby q takiej, że 1 ≤ q ≤ n, na które odpowiadamy tak jeśli liczba na pozycji q jest pierwsza albo nie w przeciwnym wypadku.
Wyjście
Dla każdego zapytania tak albo nie w zależności od tego czy liczba stojąca na danej pozycji jest pierwsza czy też nie.
Przykład
Wejście:
5 1 2 2 1 4 3 1 5 1 2 3 2 2 5 3 3 1 2 5
Wyjście:
tak nie nie
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2020-07-10 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM32-GCC COBOL D-CLANG D-DMD ELIXIR FANTOM GOSU GRV JS-MONKEY NIM OBJC OBJC-CLANG PICO RUST SCM qobi CHICKEN VB.NET |