126612024-12-27 18:07:54ruffbrigiSorozat generáláscpp17Accepted 50/5061ms1560 KiB
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>



using namespace std;

bool descending(unsigned long long a,unsigned long long b) {
return a > b;
}

int main()
{



    unsigned int m,n,k;
   unsigned long long a,b,x,y;
    vector<unsigned long> sorozat;
    cin>>m>>x>>a>>b>>n>>k;

    unsigned long tizpowm=1,tizpow2m;
    for(int i=1;i<=m;i++){
        tizpowm*=10;
    }
    tizpow2m=tizpowm*tizpowm;


    for(int i=0;i<=n-1;i++)
    {
        y=x*a+b;

        unsigned long long szam=0;
        szam=y/tizpowm;

        szam=szam%tizpow2m;


        sorozat.push_back(szam);

        x=szam;
    }

    map<unsigned long long,int, bool(*)(unsigned long long, unsigned long long)> sorrend(descending);
    unsigned long long p;
    bool megvan=false;
    for(int u=0;u<=n-1;u++)
    {
        sorrend[sorozat[u]]=0;
    }
    for(int u=0;u<=n-1;u++)
    {

            sorrend[sorozat[u]]++;

    }
    int w=0;
    for (const auto& pair : sorrend)
    {
        w+=pair.second;

        if(w>=k)
        {
            p=pair.first;
            break;
        }
    }
    int mind=n;

    map<unsigned long long,int> tavolsag;

    for(int i=0;i<=n-1;i++)
    {
        tavolsag[sorozat[i]]=-1;
    }
    for(int i=0;i<=n-1;i++)
    {
        int d=0;

        if (tavolsag[sorozat[i]] != -1) {
           d=i-tavolsag[sorozat[i]];
           if(d<mind) mind=d;
        }
        tavolsag[sorozat[i]]=i;

    }
    cout<<mind<<endl;
    cout<<p;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms320 KiB
2Accepted0/050ms1460 KiB
3Accepted2/21ms320 KiB
4Accepted2/22ms320 KiB
5Accepted2/21ms320 KiB
6Accepted2/21ms320 KiB
7Accepted2/21ms320 KiB
8Accepted4/43ms320 KiB
9Accepted4/47ms884 KiB
10Accepted4/410ms948 KiB
11Accepted4/49ms948 KiB
12Accepted4/418ms1456 KiB
13Accepted4/427ms1452 KiB
14Accepted4/445ms1560 KiB
15Accepted4/426ms1516 KiB
16Accepted4/459ms1456 KiB
17Accepted4/461ms1456 KiB