64012023-11-28 08:08:05AncsaSorozat generáláscpp14Elfogadva 50/5025ms5260 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1680 KiB
2Elfogadva0/020ms3404 KiB
3Elfogadva2/23ms2140 KiB
4Elfogadva2/23ms2308 KiB
5Elfogadva2/23ms2376 KiB
6Elfogadva2/23ms2364 KiB
7Elfogadva2/23ms2744 KiB
8Elfogadva4/44ms2972 KiB
9Elfogadva4/44ms2944 KiB
10Elfogadva4/48ms3724 KiB
11Elfogadva4/47ms3792 KiB
12Elfogadva4/410ms3920 KiB
13Elfogadva4/414ms4328 KiB
14Elfogadva4/425ms4584 KiB
15Elfogadva4/417ms4932 KiB
16Elfogadva4/423ms5172 KiB
17Elfogadva4/423ms5260 KiB