127522024-12-29 19:27:08ercseferencSorozat generáláscpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/048ms568 KiB
3Elfogadva2/21ms320 KiB
4Elfogadva2/21ms320 KiB
5Elfogadva2/21ms320 KiB
6Elfogadva2/21ms320 KiB
7Elfogadva2/21ms320 KiB
8Elfogadva4/42ms320 KiB
9Elfogadva4/44ms320 KiB
10Elfogadva4/419ms596 KiB
11Elfogadva4/412ms404 KiB
12Elfogadva4/412ms568 KiB
13Elfogadva4/4173ms748 KiB
14Elfogadva4/4145ms568 KiB
15Elfogadva4/4149ms568 KiB
16Elfogadva4/4109ms568 KiB
17Elfogadva4/4135ms568 KiB