Josif_tepe

Untitled

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