Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
KNMDPL - Podciągi z modulo |
Masz dany ciąg liczb całkowitych A1, A2, ... An oraz liczbę całkowitą k. Dla każdej liczby całkowitej i (0 ≤ i < k) znajdź niepusty podciąg ciągu A, taki, że suma liczb w tym podciągu jest największa możliwa oraz reszta z dzielenia całkowitego tej sumy przez k jest równa i.
Ciąg trzeba sobie samemu wygenerować. Dane są 4 liczby naturalne: A0, a, c, m. Wzór na j'ty element ciągu to Aj= (Aj-1 * a + c) mod m.
Pseudokod:
A[1] = (A0 * a + c) % m;for(i = 2; i <= n; i++)
A[i] = (A[i - 1] * a + c) % m;
Podczas generowania ciągu warto uważać na przekroczenie zakresu zmiennej 32 bitowej.
Wejście
W pierwszej linii liczby n i k (1 ≤ n ≤ 2 * 107, 1 ≤ k ≤ 500).
W drugiegj linii: 4 liczby A0, a, c, m (1 ≤ A0, a, c ≤ 106, A0 < m ≤ 109).
Żadna liczba ciągu nie jest równa 0.
Wyjście
Wypisz k liczb w jednej linii. i'ta liczba reprezentuje sumę liczb w podciągu dla liczby i - 1. Jeśli nie ma odpowiedniego podciągu wypisz -1.
Przykład
Wejście: 5 5 7 10 10 14 Wyjście: 40 36 32 28 34 Wyjaśnienie dla przykładu: Wygenerowany ciąg to: {10, 12, 4, 8, 6} Wyniki dla kolejnych wartości i 0: 10 + 12 + 4 + 8 + 6 = 40, 40 mod 5 = 0 1: 10 + 12 + 8 + 6 = 36, 36 mod 5 = 1 2: 10 + 12 + 4 + 6 = 32, 32 mod 5 = 2 3: 10 + 4 + 8 + 6 = 28, 28 mod 5 = 3 4: 10 + 12 + 4 + 8 = 34, 34 mod 5 = 4
Dodane przez: | Bartek |
Data dodania: | 2015-08-24 |
Limit czasu wykonania programu: | 1s-5s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 GOSU JS-MONKEY |
Pochodzenie: | KNMD |