195802025-12-16 09:46:37markfsibianSorozat generáláscpp17Hibás válasz 30/5028ms1044 KiB
#include <iostream>
#include <deque>
#include <algorithm>
#include <vector>
#include <cmath>
#include <climits>

using namespace std;

vector<int> v;

int m, st, a, b, l, k, mini = INT_MAX;

int newn(int start)
{
    deque<char> s;
    int res = 0;
    start = start * a + b;
    
    while (start > 0)
    {
        s.push_front(start % 10);
        start = start / 10;
    }
    for (int i = s.size(); i <= m*4-1; ++i)
        s.push_front(0);
    for (int i = m; i <= 3 * m-1; ++i)
        res = res * 10 + s[i];
    return res;
}

void addns(int st1, int l)
{
    if (l > 0)
    {
        int a;
        a = newn(st1);
        v.push_back(a);
        addns(a, l - 1);
    }
}

int main()
{
    cin >> m >> st >> a >> b >> l >> k;
    addns(st, l);

    cout << endl;
    for (int i = 0; i < l; ++i)
    {
        auto elem = find(v.begin() + i+1, v.end(), v[i]);
        if (elem != v.end())
            mini = min((int)distance(v.begin(), elem) - i, mini);
    }
    cout << mini;
    cout << endl;
    sort(v.rbegin(), v.rend());
    cout << v[k];
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/016ms944 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/22ms316 KiB
5Elfogadva2/22ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/22ms432 KiB
8Elfogadva4/43ms316 KiB
9Elfogadva4/48ms564 KiB
10Elfogadva4/424ms688 KiB
11Elfogadva4/417ms668 KiB
12Elfogadva4/428ms1044 KiB
13Hibás válasz0/414ms936 KiB
14Hibás válasz0/416ms940 KiB
15Hibás válasz0/416ms944 KiB
16Hibás válasz0/417ms944 KiB
17Hibás válasz0/417ms992 KiB