2011年5月17日火曜日

AOJ 2149

AOJ 2149の問題。A問。
スロットマシーンであたりを引くまで最低何回やればいいか、みたいな内容だった気がする。


#include
#include

using namespace std;

vector real;

int main(void)
{
int N , A , B , C , X;
while (1) {
cin >> N >> A >> B >> C >> X;
if (N == 0 && A == 0 && B == 0 && C == 0 && X == 0) {
break;
}
real.clear();
for (int i = 0 ; i < N ; i++) {
int temp;
cin >> temp;
real.push_back(temp);
}
int count = 0;
for (int i = 0 ; i < real.size() ;) {
if (X == real[i]) {
i++;
if (i == real.size()) {
break;
}
}
X = (A * X + B) % C;
count++;
if (count > 10000) {
count = -1;
break;
}
}

cout << count << endl;
}

return 0;
}

0 件のコメント:

コメントを投稿