195962025-12-16 14:02:52markfsibianSorozat generáláscpp17Hibás válasz 0/5028ms576 KiB
#include <iostream>
#include <deque>
#include <algorithm>
#include <vector>
#include <cmath>
#include <climits>
#include <map>

using namespace std;

vector<int> v;
map<int, int> la;

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

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);
        last = a;
        if (!la.insert(make_pair(a, 1)).second)
            la[a]++;
        if (find(v.begin(), v.end(), a) == v.end())
            v.push_back(a);
        addns(a, l - 1);
    }
}

int main()
{
    cin >> m >> st >> a >> b >> l >> k;
    addns(st, l);
    for (auto& e : v)
        cout << e << " ";
    cout << endl;
    auto elem = find(v.begin(), v.end(), last);
    mini = distance(elem, v.end());
    
    cout << mini;
    cout << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/014ms316 KiB
3Hibás válasz0/21ms316 KiB
4Hibás válasz0/22ms316 KiB
5Hibás válasz0/22ms572 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/22ms316 KiB
8Hibás válasz0/44ms316 KiB
9Hibás válasz0/49ms576 KiB
10Hibás válasz0/424ms316 KiB
11Hibás válasz0/417ms316 KiB
12Hibás válasz0/428ms420 KiB
13Hibás válasz0/413ms396 KiB
14Hibás válasz0/413ms508 KiB
15Hibás válasz0/414ms400 KiB
16Hibás válasz0/414ms396 KiB
17Hibás válasz0/414ms316 KiB