6365 2023. 11. 23 20:37:17 MrChipser Sorozat generálás cpp11 Hibás válasz 50/50 71ms 6448 KiB
#include <iostream>
#include <vector>
#include <cmath>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int64_t m,x,a,b,n,k;
    vector<long long> sorozat;
    cin >> m >> x >> a >> b >> n >> k;
    for(int i = 0; i <n; i++)
    {
        int64_t c = x*a+b;
        //cout << c << endl;
        vector<long long>akt;
        //cout << c << endl;
        while(c!=0)
        {
            akt.insert(akt.begin(),c%10);
            c/=10;
        }
        if(akt.size()!=4*m)
        {
            while(akt.size()!=4*m)
                akt.insert(akt.begin(),0);
        }
        int d=0;
        int szorzo = pow(10,2*m-1);
        for(int i = 0; i < 2*m; i++)
        {
            d+=szorzo*akt[4*m-2*m-m+i];
            szorzo/=10;
        }
        sorozat.push_back(d);
        x=d;
    }
    //for(int i = 0; i < sorozat.size(); i++)
        //cout << sorozat[i] << " ";
    int mintav = n;
    map<long,long>hmap;
    int elozo=0,akt=0;
    for(int i = 0; i <sorozat.size(); i++)
    {
        if(hmap.find(sorozat[i])!=hmap.end())
        {
            akt = i;
            elozo = hmap[sorozat[i]];
            if(akt-elozo < mintav)
                mintav = akt-elozo;
        }
        hmap[sorozat[i]]=i;

    }
    cout << mintav << endl;
    sort(sorozat.begin(),sorozat.end());
    cout << sorozat[n-k-1];
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Hibás válasz 0/0 3ms 1812 KiB
2 Elfogadva 0/0 67ms 4072 KiB
3 Elfogadva 2/2 3ms 2340 KiB
4 Elfogadva 2/2 4ms 2692 KiB
5 Elfogadva 2/2 4ms 2896 KiB
6 Elfogadva 2/2 3ms 3068 KiB
7 Elfogadva 2/2 4ms 3316 KiB
8 Elfogadva 4/4 6ms 3524 KiB
9 Elfogadva 4/4 12ms 4088 KiB
10 Elfogadva 4/4 19ms 5196 KiB
11 Elfogadva 4/4 18ms 5288 KiB
12 Elfogadva 4/4 34ms 6212 KiB
13 Elfogadva 4/4 46ms 6448 KiB
14 Elfogadva 4/4 59ms 6172 KiB
15 Elfogadva 4/4 45ms 6164 KiB
16 Elfogadva 4/4 71ms 6172 KiB
17 Elfogadva 4/4 71ms 6172 KiB