6401 2023. 11. 28 08:08:05 Ancsa Sorozat generálás cpp14 Elfogadva 50/50 25ms 5260 KiB
#include <iostream>
#include <bits/stdc++.h>

using namespace std;

//1 73 11 50 20 10
int main()
{
    int m,x, a,b,n,k;
    cin>>m>>x>>a>>b>>n>>k;
    vector<long long int> sorozat(n+1);

    sorozat.at(0)=x;
    map<long long int,int> rend;

    for(int i=1;i<=n;i++)
    {
        long long int segit=sorozat.at(i-1)*a+b;
        int hossz=0;
        string str=to_string(segit);
        while (str.size()<4*m)
            str="0"+str;
        string ujsegit=str.substr(m,2*m);
        long long int ujtag=stoll(ujsegit);
        sorozat.at(i)=ujtag;
        //cout<<sorozat.at(i);
        rend[ujtag]++;
    }
    int db=0;
    long long int ism,nagy;
    bool megvan=false, vantobb=false;

    //cout<<"\n***************************************************************************************************\n";
    for(pair<int,int> x:rend)
    {
        //cout<<x.first<<" "<<x.second<<endl;
        db+=x.second;
        if(n-db<k && ! megvan)
        {
            nagy=x.first;
            megvan=true;
        }
        if (x.second>1 && !vantobb)
        {
            vantobb=true;
            ism=x.first;
        }
    }
    int hossz=0,index=0;
    while(sorozat.at(index)!=ism)
        index++;
    int kezd=index;
    index++;
    while(sorozat.at(index)!=ism)
        index++;
    hossz=index-kezd;
    cout<<hossz<<endl;
    cout<<nagy<<endl;
    return 0;
}

Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1680 KiB
2 Elfogadva 0/0 20ms 3404 KiB
3 Elfogadva 2/2 3ms 2140 KiB
4 Elfogadva 2/2 3ms 2308 KiB
5 Elfogadva 2/2 3ms 2376 KiB
6 Elfogadva 2/2 3ms 2364 KiB
7 Elfogadva 2/2 3ms 2744 KiB
8 Elfogadva 4/4 4ms 2972 KiB
9 Elfogadva 4/4 4ms 2944 KiB
10 Elfogadva 4/4 8ms 3724 KiB
11 Elfogadva 4/4 7ms 3792 KiB
12 Elfogadva 4/4 10ms 3920 KiB
13 Elfogadva 4/4 14ms 4328 KiB
14 Elfogadva 4/4 25ms 4584 KiB
15 Elfogadva 4/4 17ms 4932 KiB
16 Elfogadva 4/4 23ms 5172 KiB
17 Elfogadva 4/4 23ms 5260 KiB