124292024-12-17 18:39:57szabelrSorozat generáláscpp17Hibás válasz 16/5035ms828 KiB
#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>
#include <algorithm>

int h(int x, int y) {
    return x < y;
}

using namespace std;

int main() {
    long long m, x, a, b, n, k;
    cin >> m >> x >> a >> b >> n >> k;

    int* sor = new int[n + 1];
    unordered_map<int, int> seen;
    int min_distance = n + 1;

    sor[0] = x;
    for (int i = 1; i <= n; i++) {
        sor[i] = sor[i - 1] * a + b;
        string szam = to_string(sor[i]);
        while (szam.length() < 4 * m) {
            szam = '0' + szam;
        }
        szam = szam.substr(m, 2 * m);
        int jo = stoi(szam);

        if (seen.count(jo)) {
            // Calculate the distance
            min_distance = min(min_distance, i - seen[jo]);
        }
        seen[jo] = i;
        sor[i] = jo;
    }

    cout << min_distance << endl;

    sort(sor, sor + n + 1, h);
    cout << sor[k - 1] << endl;

    delete[] sor;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base16/50
1Hibás válasz0/01ms500 KiB
2Hibás válasz0/032ms820 KiB
3Részben helyes1/21ms320 KiB
4Részben helyes1/22ms320 KiB
5Részben helyes1/22ms320 KiB
6Részben helyes1/21ms320 KiB
7Elfogadva2/22ms320 KiB
8Részben helyes2/43ms320 KiB
9Részben helyes2/46ms320 KiB
10Részben helyes2/413ms588 KiB
11Részben helyes2/410ms576 KiB
12Részben helyes2/417ms600 KiB
13Hibás válasz0/428ms624 KiB
14Hibás válasz0/432ms740 KiB
15Hibás válasz0/432ms824 KiB
16Hibás válasz0/435ms680 KiB
17Hibás válasz0/435ms828 KiB