2149-Luck Manipulator

http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=2149&lang=jp
考え方
問題文に書かれている通りに実装する。

実装(C++)

#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <climits>
#include <cctype>
#include <ctime>
#include <cassert>
#include <cwchar>
#include <cstdarg>
#include <cwctype>
#include <queue>
#include <stack>
#include <algorithm>
#include <list>
#include <vector>
#include <set>
#include <map>
#include <iostream>
#include <deque>
#include <complex>
#include <string>
#include <functional>
#include <iomanip>
using namespace std;
typedef long long int lli;
typedef unsigned int uint;

#define MEMCLEAR(variable_d) memset(variable_d,0,sizeof(variable_d))

int main(){
	int n,a,b,c,x,t;
	for(;(cin>>n>>a>>b>>c>>x),n;){
		queue<int> que;
		for(int i=0;i<n;i++)
			(cin>>t),que.push(t);
		int frame;
		for(frame=0;frame<=10000;frame++){
			if(x==que.front()){
				que.pop();
			}
			if(que.empty())break;
			x=(a*x+b)%c;
		}
		if(frame>10000)frame=-1;
		cout<<frame<<endl;
	}
	return 0;
}