127522024-12-29 19:27:08ercseferencSorozat generáláscpp17Accepted 50/50173ms748 KiB
#include <iostream>
using namespace std;
struct ertek{int db; int ert;};
int main()
{
    int m,a,b,n,k,p; long long x;
    cin>>m>>x>>a>>b>>n>>k;
    int c[n],d[4*m]; for(int i=0; i<4*m; i++){d[i]=0;}
    for(int i=0; i<n; i++){
        x=x*a+b; p=1;
        while(x!=0){
            d[4*m-p]=x%10; x=x/10; p++;}
        for(int j=m; j<3*m; j++){
            x=x*10+d[j];} c[i]=x;}
    bool nincs2=0; int y=0,kul;
    while(nincs2==0){
        for(int i=y+1; i<n; i++){if(c[y]==c[i]){nincs2=1; kul=i-y; break;}}
        y++;}
    int q1,q2,s=0; bool nincs=0;
    q1=y; q2=y+kul;
    int veg=(n-q1)%kul; int db=(n-q1)/kul;
    ertek keszl[q2];
    for(int i=0; i<q2; i++){keszl[i].ert=c[i];}
    for(int i=0; i<q1; i++){keszl[i].db=1;}
    for(int i=q1; i<q2; i++){keszl[i].db=db;}
    for(int i=0; i<veg; i++){keszl[q1+i].db++;}
    for(int i=0; i<q2; i++){
        for(int j=i; j<q2; j++){if(keszl[i].ert<keszl[j].ert)swap(keszl[i],keszl[j]);}}
    int index=0;
    while(k>0){
        k=k-keszl[index].db;
        index++;}
    cout<<kul<<endl;
    cout<<keszl[index-1].ert;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms320 KiB
2Accepted0/048ms568 KiB
3Accepted2/21ms320 KiB
4Accepted2/21ms320 KiB
5Accepted2/21ms320 KiB
6Accepted2/21ms320 KiB
7Accepted2/21ms320 KiB
8Accepted4/42ms320 KiB
9Accepted4/44ms320 KiB
10Accepted4/419ms596 KiB
11Accepted4/412ms404 KiB
12Accepted4/412ms568 KiB
13Accepted4/4173ms748 KiB
14Accepted4/4145ms568 KiB
15Accepted4/4149ms568 KiB
16Accepted4/4109ms568 KiB
17Accepted4/4135ms568 KiB