Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- #include <sstream>
- #include <queue>
- #include <deque>
- #include <stack>
- #include <map>
- #include <vector>
- #include <string>
- #include <set>
- #include <cstdio>
- #include <cmath>
- #include <ctime>
- #include <cstdlib>
- #include <cstring>
- #define sz(a) (int)a.size()
- #define all(a) a.begin(), a.end()
- #define rall(a) a.rbegin(), a.rend()
- #define llong long long
- #define zero(a) fabs(a) < 1e-9
- #define resz(a, n) a.clear(), a.resize(n)
- #define same(a, n) memset(a, n, sizeof(a))
- #define make(a, b) make_pair(a, b)
- using namespace std;
- const int BOUND = 100000;
- llong a, b, c;
- set< llong > s;
- int main() {
- cin >> a >> b >> c;
- for (int i = 0; i < 20; i++) {
- llong cur = 1;
- for (int j = 0; j <= 2000000; j++) {
- if (s.find(cur) != s.end()) {
- printf("%d\n", j);
- return 0;
- }
- if (j >= i * BOUND && j < (i + 1) * BOUND)
- s.insert(cur);
- cur = (a * cur + (cur % b)) % c;
- }
- s.clear();
- }
- printf("-1\n");
- return 0;
- }
Add Comment
Please, Sign In to add comment