126602024-12-27 17:56:09ruffbrigiSorozat generáláscpp17Hibás válasz 28/5067ms1536 KiB
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>

//#include <fstream>

using namespace std;

int main()
{

 //   ofstream outFile("sorozat.txt");
 //   ofstream sortedOutFile("rendezett.txt");


    unsigned int m,n,k;
   unsigned long long a,b,x,y;
    vector<unsigned long> sorozat;
    cin>>m>>x>>a>>b>>n>>k;
  //  cout<<"x="<<x<<" a="<<a<<" b="<<b<<endl;
    //cout<<202101*404202+987654<<endl;
    unsigned long tizpowm=1,tizpow2m;
    for(int i=1;i<=m;i++){
        tizpowm*=10;
    }
    tizpow2m=tizpowm*tizpowm;

    //cout<<"10^"<<m<<"="<<tizpowm<<" 10^"<<2*m<<"="<<tizpow2m<<endl;
   // y=x*a + b;
   // cout<<"elso:"<<y<<endl;
    for(int i=0;i<=n-1;i++)
    {
        y=x*a+b;
        //y2=y;
        unsigned long long szam=0;
        szam=y/tizpowm;

        szam=szam%tizpow2m;

/*        vector<int> tag;
        for(int j=0;j<=4*m-1;j++)
        {
           tag.insert(tag.begin(), (y2%10));
           y2=y2/10;
        }
        for(int k=0;k<=m-1;k++)
        {
            tag.pop_back();
            tag.erase(tag.begin());
        }
        for(int l=0;l<=2*m-1;l++)
        {
            szam=szam+h*(tag.back());
            h=h*10;
            tag.pop_back();
        }*/
        sorozat.push_back(szam);
   //     outFile <<szam<<" ";
        //tag.clear();
        x=szam;
    }
   // outFile.close();
    map<unsigned long long,int> sorrend;
    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++)
    {
//        auto it = sorrend.find(sorozat[u]);
//        if (it != sorrend.end()) {
            sorrend[sorozat[u]]++;
//        }
//        else{
//            sorrend[sorozat[u]]=1;
//        }
    }
    int w=0;
    for (const auto& pair : sorrend)
    {
        w+=pair.second;
    //    sortedOutFile<<pair.first<<" ("<<pair.second<<") ";
        if(w>=k+1)
        {
            p=pair.first;
            break;
        }
    }
    int mind=n;
    //sortedOutFile.close();
    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;
     //   auto it = tavolsag.find(sorozat[i]);
        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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base28/50
1Elfogadva0/01ms320 KiB
2Hibás válasz0/054ms1460 KiB
3Részben helyes1/21ms320 KiB
4Részben helyes1/22ms500 KiB
5Részben helyes1/21ms320 KiB
6Részben helyes1/21ms320 KiB
7Elfogadva2/21ms320 KiB
8Részben helyes2/42ms320 KiB
9Részben helyes2/46ms696 KiB
10Részben helyes2/48ms1048 KiB
11Részben helyes2/47ms1136 KiB
12Részben helyes2/417ms1456 KiB
13Elfogadva4/418ms1456 KiB
14Részben helyes2/445ms1456 KiB
15Részben helyes2/416ms1456 KiB
16Részben helyes2/464ms1456 KiB
17Részben helyes2/467ms1536 KiB