Josif_tepe

Untitled

Feb 25th, 2026
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. #include <stack>
  5. //#include <bits/stdc++.h>
  6. using namespace std;
  7. typedef long long ll;
  8. int main()
  9. {
  10.     ios_base::sync_with_stdio(false);
  11.     int n;
  12.     cin >> n;
  13.    
  14.     vector<int> v(n);
  15.     map<int, vector<int>> M;
  16.    
  17.     for(int i = 0; i < n; i++) {
  18.         cin >> v[i];
  19.         M[v[i]].push_back(i);
  20.     }
  21.     vector<int> res(n, 0);
  22.    
  23.     for(pair<int, vector<int>> p: M) {
  24.         vector<int> idx = p.second;
  25.         int sz = (int) idx.size();
  26.        
  27.         if(sz >= 2) {
  28.             for(int i = 0; i < sz; i++) {
  29.                 int pi = idx[i];
  30.                 int antipodanlna_tocka = (pi + n/2) % n;
  31.                
  32.                 vector<int>::iterator it = lower_bound(idx.begin(), idx.end(), antipodanlna_tocka);
  33.                
  34.                 vector<int> kandidati;
  35.                
  36.                 if(it != idx.end()) {
  37.                     kandidati.push_back(*it);
  38.                 }
  39.                 if(it != idx.begin()) {
  40.                     it--;
  41.                     kandidati.push_back(*it);
  42.                 }
  43.                
  44.                 kandidati.push_back(idx[0]);
  45.                 kandidati.push_back(idx[sz - 1]);
  46.                
  47.                 int max_element = 0;
  48.                 for(int j = 0; j < kandidati.size(); j++) {
  49.                     if(pi != kandidati[j]) {
  50.                         int d = abs(pi - kandidati[j]);
  51.                         d = min(d, n - d);
  52.                         max_element = max(max_element, d);
  53.                     }
  54.                 }
  55.                 res[pi] = max_element;
  56.                
  57.             }
  58.         }
  59.     }
  60.    
  61.     for(int i = 0; i < n; i++) {
  62.         cout << res[i] << " ";
  63.     }
  64.    
  65.     return 0;
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment