Advertisement
Saleh127

UVA 11053 / Cycle finding

Oct 4th, 2021
1,010
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int tt; cin>>tt; for(int cs=1;cs<=tt;cs++)
  5. int main()
  6. {
  7.    ios_base::sync_with_stdio(0);
  8.    cin.tie(0);cout.tie(0);
  9.  
  10.    ll n,m,i,j,k,l,a,b;
  11.  
  12.    while(cin>>n && n)
  13.    {
  14.         cin>>a>>b;
  15.  
  16.         map<ll,ll>x;
  17.  
  18.         l=n;
  19.         k=0;
  20.  
  21.         while(true)
  22.         {
  23.              k=((a*(k*k%n))%n + b)%n;
  24.  
  25.              x[k]++;
  26.  
  27.              if(x[k]==2) l--;
  28.              if(x[k]==3)
  29.              {
  30.                   cout<<l<<endl;
  31.                   break;
  32.              }
  33.  
  34.         }
  35.    }
  36.  
  37.  
  38.    return 0;
  39. }
  40.  
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement