124312024-12-17 18:49:44szabelrSorozat generáláscpp17Részben helyes 49/5030ms1332 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;
    vector<long long> sor(n + 1);
    unordered_map<int, int> seen;
    int min_distance = n + 1;
    seen[x] = 0;
    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)) {
            min_distance = min(min_distance, i - seen[jo]);
        }
        seen[jo] = i;
        sor[i] = jo;
    }
    cout << min_distance << endl;
    sort(sor.begin() + 1, sor.end(), h);
    cout << sor[k - 1] << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base49/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/029ms1080 KiB
3Részben helyes1/21ms320 KiB
4Elfogadva2/22ms320 KiB
5Elfogadva2/22ms320 KiB
6Elfogadva2/22ms320 KiB
7Elfogadva2/22ms320 KiB
8Elfogadva4/43ms476 KiB
9Elfogadva4/46ms592 KiB
10Elfogadva4/413ms824 KiB
11Elfogadva4/412ms824 KiB
12Elfogadva4/418ms1004 KiB
13Elfogadva4/421ms1208 KiB
14Elfogadva4/430ms1212 KiB
15Elfogadva4/428ms1264 KiB
16Elfogadva4/430ms1288 KiB
17Elfogadva4/430ms1332 KiB