Josif_tepe

Untitled

Feb 27th, 2026
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  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.        
  23.         if(sz >= 2) {
  24.             for(int i = 0; i < sz; i++) {
  25.                 int pi = idx[i];
  26.                 int antipodalna_tocka = (pi + n/2) % n;
  27.                
  28.                 vector<int>::iterator it = lower_bound(idx.begin(), idx.end(), antipodalna_tocka);
  29.                
  30.                 vector<int> kandidati;
  31.                 if(it != idx.end()) {
  32.                     kandidati.push_back(*it);
  33.                 }
  34.                
  35.                 if(it != idx.begin()) {
  36.                     it--;
  37.                     kandidati.push_back(*it);
  38.                 }
  39.                
  40.                 kandidati.push_back(idx[0]);
  41.                 kandidati.push_back(idx[sz - 1]);
  42.                
  43.                 int max_dist = 0;
  44.                 for(int j = 0; j < kandidati.size(); j++) {
  45.                     if(pi != kandidati[j]) {
  46.                         int d = abs(pi - kandidati[j]);
  47.                         d = min(d, n - d);
  48.                         max_dist = max(max_dist, d);
  49.                     }
  50.                 }
  51.                 res[pi] = max_dist;
  52.             }
  53.         }
  54.        
  55.     }
  56.    
  57.     for(int i = 0; i < n; i++) {
  58.         cout << res[i] << " ";
  59.     }
  60.    
  61.     return 0;
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment