38652023-03-03 12:35:58Erik_GepardSorozat generáláscpp17Hibás válasz 16/504ms4588 KiB
#include <bits/stdc++.h>
using namespace std;

int power10(int x){
    int ans=1;
    for(int i=1; i<=x; i++){
        ans*=10;
    }
    return ans;
}

void solve(){
    int m, x, a, b, n, k, step=0;
    cin>>m>>x>>a>>b>>n>>k;
    vector<int> v;
    map<int, int> found;
    map<int, int> db;
    found[x]=0;
    db[x]++;
    while(1){
        v.push_back(x);
        x=x*a+b;
        string s=to_string(x);
        reverse(s.begin(), s.end());
        for(int i=0; i<4*m-s.size(); i++){
            s+="0";
        }
        //cerr<<s<<" ";
        string ss=s.substr(m, 2*m);
        //cerr<<ss<<" ";
        int nextx=0;
        for(int i=0; i<ss.size(); i++){
            nextx+=(ss[i]-'0')*power10(i);
        }
        x=nextx;
        //cerr<<x<<"\n";
        step++;
        if(found[x]){
            cout<<step-found[x]<<"\n";
            //cerr<<found[x]<<"\n";
            for(int i=found[x]; i<step; i++){
                db[v[i]]=n/(step-found[x]);
            }
            for(int i=found[x]; i<=(n-found[x])%(step-found[x])+found[x]; i++){
                db[v[i]]++;
                //cerr<<v[i]<<" "<<db[v[i]]<<"OK ";
            }
            int x=0;
            for(pair<int, int> p : db){
                //cerr<<p.first<<" "<<p.second<<"\n";
                x+=p.second;
                if(x>k) {
                    cout<<p.first<<"\n";
                    break;
                }
            }
            break;
        }
        db[x]++;
        found[x]=step;
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base16/50
1Elfogadva0/03ms1828 KiB
2Hibás válasz0/04ms2508 KiB
3Részben helyes1/23ms2400 KiB
4Részben helyes1/23ms2572 KiB
5Részben helyes1/22ms2828 KiB
6Részben helyes1/23ms2924 KiB
7Elfogadva2/23ms3044 KiB
8Részben helyes2/43ms3392 KiB
9Részben helyes2/43ms3632 KiB
10Részben helyes2/43ms3736 KiB
11Részben helyes2/43ms3912 KiB
12Részben helyes2/43ms3992 KiB
13Hibás válasz0/43ms4192 KiB
14Hibás válasz0/44ms4588 KiB
15Hibás válasz0/44ms4436 KiB
16Hibás válasz0/43ms4084 KiB
17Hibás válasz0/43ms4244 KiB