Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _USE_MATH_DEFINES
- #include <iostream>
- #include <string>
- #include <map>
- #include <set>
- #include <algorithm>
- #include <vector>
- #include <stdio.h>
- #include <cmath>
- #include <math.h>
- #include <queue>
- #include <stack>
- #include <climits>
- #include <deque>
- #include <ctime>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef unsigned int ui;
- #define mh() make_heap()
- #define poph() pop_heap()
- #define pushh() push_heap()
- #define sor(n) n.begin(), n.end()
- #define mp make_pair
- #define files freopen("input.txt", "rt", stdin); freopen("output.txt", "wt", stdout)
- #define p(T) pair<T,T>
- #define znac(l) abs(l)/l
- const ll ok = ll(1e9 + 7);
- ll lcm(int a, int b)
- {
- ll k = a, j = b;
- while (a)
- {
- swap(a, b);
- a %= b;
- }
- return (k * j) / b;
- }
- int main()
- {
- //files;
- int a[1001];
- ll n;
- cin >> n;
- for (int i = 1; i <= n; i++)
- cin >> a[i];
- vector <ll> kl;
- for (int i = 1; i <= n; i++)
- {
- ll var = a[i];
- ll k = 1;
- while (var != i)
- {
- var = a[var];
- k++;
- }
- kl.push_back(k);
- }
- ll hg;
- if(kl.size()>1)
- hg = lcm(kl[0], kl[1]);
- for (int i = 2; i < kl.size(); i++)
- {
- hg = lcm(hg, kl[i]);
- }
- cout << hg;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement