1617 2022. 11. 29 16:44:36 kovacs.peter.18f Sorozat generálás cpp11 Elfogadva 50/50 14ms 5716 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);

    long long M, X, A, B, N, K;
    cin >> M >> X >> A >> B >> N >> K;
    vector<long long> numberS(N);
    map<long long, 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 Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1828 KiB
2 Elfogadva 0/0 14ms 3476 KiB
3 Elfogadva 2/2 2ms 2100 KiB
4 Elfogadva 2/2 3ms 2404 KiB
5 Elfogadva 2/2 3ms 2608 KiB
6 Elfogadva 2/2 2ms 2540 KiB
7 Elfogadva 2/2 3ms 2576 KiB
8 Elfogadva 4/4 3ms 2592 KiB
9 Elfogadva 4/4 4ms 2936 KiB
10 Elfogadva 4/4 7ms 3740 KiB
11 Elfogadva 4/4 7ms 3868 KiB
12 Elfogadva 4/4 8ms 4216 KiB
13 Elfogadva 4/4 12ms 4808 KiB
14 Elfogadva 4/4 13ms 5004 KiB
15 Elfogadva 4/4 12ms 5340 KiB
16 Elfogadva 4/4 14ms 5512 KiB
17 Elfogadva 4/4 14ms 5716 KiB