Biorąc pod uwagę listę wyrażeń matematycznych, które są prawdziwe i składają się z obliczeń reszty modulo z dwiema liczbami i wynikiem, Twoim zadaniem jest uzyskanie pierwszych nliczb, które są prawdziwe dla wszystkich instrukcji na liście.
Na przykład:
[m % 3 = 0, m % 4 = 1, m % 5 = 3], gdzie% jest operatorem modulo.
Dla n= 3 pierwsze 3 liczby (licząc od 0), które pasują do sekwencji, są 33, 93, 153więc wynikiem (format do ciebie).
Zasady / IO
- Bierzesz liczbę dodatnią
ni listę prawd. Oczywiście, potrzebne są tylko RHS operacji modulo i wynik. na liczby na liście prawd zawsze będą w zakresie 1 -> 2 ^ 31-1 , podobnie jak wyniki.- Bierzesz dane w dowolnej dogodnej formie i dane wyjściowe w dowolnej dogodnej formie. Na przykład, wejście:
3 [3 0, 4 1, 5 3]i wyjście:33 93 153. - Gwarantuje to, że rozwiązanie jest matematycznie możliwe.
- Źródło danych wejściowych może pochodzić z pliku, parametrów funkcji, standardowego wejścia itd. To samo dotyczy danych wyjściowych.
- Bez luk.
- To jest golf golfowy, więc wygrywa najmniejsza liczba bajtów.
Przypadki testowe
# Input in the form <n>, <(d r), (d2 r2), ...>
# where <d> = RHS of the modulo expression and <r> the result of the expression. Output in the next line.
5, (3 2), (4 1), (5 3)
53 113 173 233 293
3, (8, 0), (13, 3), (14, 8)
120 848 1576
Implementacja referencji w pseudokodzie
n = (an integer from stdin)
truths = (value pairs from stdin)
counter = 0
while n != 0 {
if matches_criterias(counter, truths) {
print counter
n -= 1
}
counter += 1
}
0prawidłowy wynik?