読者です 読者をやめる 読者になる 読者になる

川のブログ

川の適当気ままなブログです。 

AOJ 2149 Luck Manipulator

AOJ volume21

こんにちは川です。

今回は、問題文に与えられた式を使って計算しただけなので特に解説はないです。

 

ソースコード

 

#include <bits/stdc++.h>
using namespace std;
int main() {
    int num[5];
    while(1){
        bool kawa=1;
        for(int i=0;i<5;i++){
            cin>>num[i];
            if(num[i]!=0)kawa=0;
        }
        if(kawa)break;
        int stop[10000],ans=-1;
        for(int i=0;i<num[0];i++)cin>>stop[i];
        for(int i=0,n=num[4],j=0;i<10001&&j<num[0];i++){
            if(n==stop[j])j++;
            if(j==num[0])ans=i;
            n=(num[1]*n+num[2])%num[3];
        }
        cout<<ans<<endl;
    }
}