123732024-12-13 18:58:18szabelrSorozat generáláscpp17Hibás válasz 1/5017ms1452 KiB
#include <iostream>
#include <unordered_map>
#include <queue>
#include <cmath>

using namespace std;

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

    long long mod = pow(10, 4 * m);  // Modulus for 4*M digits
    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++) {
        long long next = (long long)sor[i - 1] * a + b;
        next %= mod;

        int middle_digits = (next / (long long)pow(10, 2 * m)) % (int)pow(10, 2 * m);
        sor[i] = middle_digits;

        if (seen.count(middle_digits)) {
            min_distance = min(min_distance, i - seen[middle_digits]);
        }
        seen[middle_digits] = i;
    }

    cout << min_distance << endl;

    priority_queue<int, vector<int>, greater<int>> min_heap;
    for (int i = 1; i <= n; i++) {
        min_heap.push(sor[i]);
        if (min_heap.size() > k) {
            min_heap.pop();
        }
    }

    cout << min_heap.top() << endl;

    delete[] sor;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base1/50
1Hibás válasz0/01ms320 KiB
2Hibás válasz0/017ms1452 KiB
3Hibás válasz0/21ms320 KiB
4Hibás válasz0/22ms596 KiB
5Hibás válasz0/22ms320 KiB
6Hibás válasz0/21ms320 KiB
7Részben helyes1/22ms508 KiB
8Hibás válasz0/42ms360 KiB
9Hibás válasz0/44ms320 KiB
10Hibás válasz0/48ms1004 KiB
11Hibás válasz0/48ms776 KiB
12Hibás válasz0/413ms824 KiB
13Hibás válasz0/416ms1080 KiB
14Hibás válasz0/416ms1144 KiB
15Hibás válasz0/417ms1368 KiB
16Hibás válasz0/417ms1000 KiB
17Hibás válasz0/417ms824 KiB