Guest User

Untitled

a guest
Aug 20th, 2023
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. int32_t main()
  5. {
  6.     cin.tie(nullptr)->sync_with_stdio(false);
  7.     int n;
  8.     cin >> n;
  9.     vector<int> a(n + 1);
  10.     for (int i = 1; i <= n; ++i)
  11.     {
  12.         cin >> a[i];
  13.     }
  14.     set<pair<int, int>> ans;
  15.     for (int i = 1; i <= n; ++i)
  16.     {
  17.         for (int k = 2; k * i <= a[i]; ++k)
  18.         {
  19.             int left = a[i] - k * i;
  20.             if (left % (k - 1) == 0)
  21.             {
  22.                 int j = left / (k - 1);
  23.                 if (j >= 1 && j <= n && i != j)
  24.                 {
  25.                     if (__gcd(a[i] + j, a[j] + i) == i + j)
  26.                     {
  27.                         ans.insert({min(i, j), max(i, j)});
  28.                     }
  29.                 }
  30.             }
  31.         }
  32.     }
  33.     int fixedpoints = 0;
  34.     for (int i = 1; i <= n; ++i)
  35.     {
  36.         if (a[i] == i)
  37.         {
  38.             fixedpoints++;
  39.         }
  40.     }
  41.  
  42.     cout << (int)ans.size() + fixedpoints * (fixedpoints - 1) / 2;
  43. }
Add Comment
Please, Sign In to add comment