16162022-11-29 16:42:16kovacs.peter.18fSorozat generáláscpp11Hibás válasz 30/5014ms4268 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>

using namespace std;

int pow10(int n) {
    int result = 1;
    while (n--) {
        result *= 10;
    }
    return result;
}

int main() {
    cin.sync_with_stdio(false);
    cin.tie(nullptr);

    int M, X, A, B, N, K;
    cin >> M >> X >> A >> B >> N >> K;
    vector<int> numberS(N);
    map<int, int> lastS;
    bool found = false;
    numberS[0] = (X * A + B) / pow10(M) % pow10(2 * M);
    for (int i = 1; i < N; i++) {
        numberS[i] = (numberS[i - 1] * A + B) / pow10(M) % pow10(2 * M);
        if (!found) {
            if (lastS.find(numberS[i]) == lastS.end()) {
                lastS[numberS[i]] = i;
            }
            else {
                found = true;
                cout << i - lastS[numberS[i]] << '\n';
            }
        }
    }
    sort(numberS.rbegin(), numberS.rend());
    cout << numberS[K - 1] << '\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/50
1Elfogadva0/03ms1824 KiB
2Hibás válasz0/014ms2956 KiB
3Elfogadva2/22ms2612 KiB
4Elfogadva2/22ms2688 KiB
5Elfogadva2/22ms2708 KiB
6Elfogadva2/22ms2796 KiB
7Elfogadva2/22ms2896 KiB
8Elfogadva4/43ms3228 KiB
9Elfogadva4/44ms3584 KiB
10Elfogadva4/46ms3480 KiB
11Elfogadva4/46ms3484 KiB
12Elfogadva4/48ms3884 KiB
13Hibás válasz0/410ms4088 KiB
14Hibás válasz0/412ms4088 KiB
15Hibás válasz0/412ms4268 KiB
16Hibás válasz0/412ms4084 KiB
17Hibás válasz0/414ms4220 KiB