Josif_tepe

Untitled

Feb 23rd, 2026
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. using namespace std;
  5. int main () {
  6.     ios_base::sync_with_stdio(false);
  7.     int n;
  8.     cin >> n;
  9.    
  10.     vector<int> v(n);
  11.     map<int, vector<int>> M;
  12.    
  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.                 if(it != idx.begin()) {
  35.                     it--;
  36.                     kandidati.push_back(*it);
  37.                 }
  38.                
  39.                 kandidati.push_back(idx[0]);
  40.                 kandidati.push_back(idx[sz - 1]);
  41.                
  42.                 int max_element = 0;
  43.                
  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_element = max(max_element, d);
  49.                     }
  50.                 }
  51.                
  52.                
  53.                 res[pi] = max_element;
  54.                
  55.                
  56.             }
  57.         }
  58.        
  59.     }
  60.    
  61.     for(int i = 0; i < n; i++) {
  62.         cout << res[i] << " ";
  63.     }
  64.    
  65.     return 0;
  66. }
  67.  
  68.  
Advertisement
Add Comment
Please, Sign In to add comment