주제 설명 :
열 한 곳입니다 { } , 당신은 시리즈 처음으로 라벨 중복 된 항목을 프로그램는 사실을 알게 될 것입니다. 만약 만 개 이상의 출력에 대한 답 "-1"
(따옴표없이)
입력 형식
세 정수 A, B, C의 첫번째 행
출력 형식
라인 출력 정수 대답.
데이터 범위
0 <A, B, C≤ 상기 데이터의 30 % .
0 <A, B, C≤ 100 %에 대한 데이터 .
샘플 입력
2 2 9
샘플 출력
4
보고서 문제 해결 :
1 :지도 밖으로 시간, unordered_map도 표시 할 수 있습니다.
코드 :
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
unordered_map<ll, ll>node;
int main(){
ll a, b, c, pre = 1;
scanf("%lld%lld%lld", &a, &b, &c);
node[1] = 1;
for(ll i=1; i<=2000000; ++i){
ll val = (a*pre+pre%b)%c;
if(node[val]){
printf("%lld\n", i);
return 0;
}
pre = val, node[val] = 1;
}
printf("-1\n");
return 0;
}