195812025-12-16 09:48:23markfsibianSorozat generáláscpp17Wrong answer 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-1];
}
SubtaskSumTestVerdictTimeMemory
base30/50
1Accepted0/01ms316 KiB
2Wrong answer0/016ms944 KiB
3Accepted2/21ms316 KiB
4Accepted2/22ms316 KiB
5Accepted2/22ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/22ms316 KiB
8Accepted4/44ms316 KiB
9Accepted4/48ms664 KiB
10Accepted4/424ms688 KiB
11Accepted4/417ms688 KiB
12Accepted4/428ms1036 KiB
13Wrong answer0/414ms1044 KiB
14Wrong answer0/416ms944 KiB
15Wrong answer0/416ms944 KiB
16Wrong answer0/417ms944 KiB
17Wrong answer0/417ms820 KiB