63602023-11-23 20:16:56MrChipserSorozat generáláscpp11Hibás válasz 6/5074ms5180 KiB
#include <iostream>
#include <vector>
#include <cmath>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int m,x,a,b,n,k;
    vector<int> sorozat;
    cin >> m >> x >> a >> b >> n >> k;
    for(int i = 0; i <n; i++)
    {
        long long c = x*a+b;
        //cout << c << endl;
        vector<int>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-1+i];
            szorzo/=10;
        }
        sorozat.push_back(d);
        x=d;
    }
   // for(int i = 0; i < sorozat.size(); i++)
        //cout << sorozat[i] << " ";
    int mintav = n;
    map<int,int>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[k];
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/50
1Elfogadva0/03ms1808 KiB
2Hibás válasz0/072ms3116 KiB
3Részben helyes1/23ms2212 KiB
4Részben helyes1/24ms2608 KiB
5Részben helyes1/24ms2688 KiB
6Részben helyes1/23ms2864 KiB
7Elfogadva2/24ms3136 KiB
8Hibás válasz0/47ms3464 KiB
9Hibás válasz0/410ms3640 KiB
10Hibás válasz0/418ms3952 KiB
11Hibás válasz0/417ms3852 KiB
12Hibás válasz0/427ms4488 KiB
13Hibás válasz0/468ms4704 KiB
14Hibás válasz0/464ms4856 KiB
15Hibás válasz0/465ms5060 KiB
16Hibás válasz0/474ms5028 KiB
17Hibás válasz0/467ms5180 KiB