Advertisement
TwITe

Untitled

Oct 27th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.10 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void task1() {
  5.     int n;
  6.     long long t;
  7.     cin >> n;
  8.     cin >> t;
  9.     vector <int> a;
  10.     for (int i = 0; i < n; i++) {
  11.         int cur_t;
  12.         cin >> cur_t;
  13.         a.push_back(cur_t);
  14.     }
  15.     int cnt = 0;
  16.     for (int i = 0; i < n; i++) {
  17.         cnt++;
  18.         if (a[i] != 86400) {
  19.             int free_t = 86400 - a[i];
  20.             t = t - free_t;
  21.             if (t <= 0) {
  22.                 break;
  23.             }
  24.         }
  25.     }
  26.     cout << cnt;
  27. }
  28.  
  29. void task2() {
  30.     int n, x;
  31.     cin >> n >> x;
  32.     vector <int> a;
  33.     for (int i = 0; i < n; i++) {
  34.         int b;
  35.         cin >> b;
  36.         a.push_back(b);
  37.     }
  38.     int len = 0;
  39.     for (int i = 0; i < n; i++) {
  40.         len += a[i];
  41.         if (i != n - 1) {
  42.             len++;
  43.         }
  44.     }
  45.     if (len == x) {
  46.         cout << "YES";
  47.         return;
  48.     }
  49.     if (len < x) {
  50.         cout << "NO";
  51.         return;
  52.     }
  53.     if (len > x) {
  54.         cout << "NO";
  55.         return;
  56.     }
  57. }
  58.  
  59. void task3() {
  60.     int n;
  61.     cin >> n;
  62.     unordered_map <int,int> a;
  63.     for (int i = 1; i <= n; i++) {
  64.         int b;
  65.         cin >> b;
  66.         a[i] = b;
  67.     }
  68.     unordered_map <int, int> nums;
  69.     vector <int> d;
  70.     unordered_map <int, pair<int,int>> q;
  71.     int max = 0, max2 = 0;
  72.     bool flag = true;
  73.     for (int i = 1; i <= n; i++) {
  74.         flag = true;
  75.         int num = 1;
  76.         int start = i;
  77.         int next = a[i];
  78.         while (next != start) {
  79.             next = a[next];
  80.             start = next;
  81.             next = a[start];
  82.             next = a[next];
  83.             num++;
  84.         }
  85.         if (num > max) {
  86.             max = num;
  87.             q[0].first = i;
  88.             q[0].second = max;
  89.             flag = false;
  90.         }
  91.         if (num <= max && !flag) {
  92.             q[1].first = i;
  93.             q[1].second = num;
  94.         }
  95.         nums[i] = num;
  96.     }
  97.     for (int i = 1; i <= n; i++) {
  98.         cout << i << " " << nums[i] << endl;
  99.     }
  100.  
  101. }
  102.  
  103. int main() {
  104.     //task1();
  105.     //task2();
  106.     task3();
  107.     return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement