Naxocist

Domino [1052]

Apr 25th, 2022
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5.  
  6. using pi = pair<int, int>;
  7.  
  8. int main() {
  9.  
  10.     ios::sync_with_stdio(false); cin.tie(nullptr);
  11.     int n; cin >> n;
  12.     pi d[n+3];
  13.  
  14.     for(int i=0; i<n; ++i) cin >> d[i].first >> d[i].second;
  15.  
  16.     char di = 'L';
  17.     int mx = -1e9, s = 0;
  18.  
  19.     for(int i=0; i<n;){
  20.         int k = i;
  21.         int range = d[k].first + d[k].second;
  22.        
  23.         while(1){
  24.             k++;    
  25.             if(k >= n || range <= d[k].first) break;
  26.  
  27.             range = max(range, d[k].first + d[k].second);
  28.         }
  29.  
  30.         if(k-i > mx){
  31.             mx = k-i;
  32.             s = i+1;
  33.             di = 'R';
  34.         }
  35.  
  36.         i = k;
  37.     }
  38.  
  39.     for(int i=n-1; i>=0;){
  40.         int k = i;
  41.         int range = d[k].first - d[k].second;
  42.  
  43.         while(1){
  44.             k--;
  45.             if(k < 0 || range >= d[k].first) break;
  46.  
  47.             range = min(range, d[k].first - d[k].second);
  48.         }
  49.  
  50.         if(i - k > mx || (i - k == mx && i < s)){
  51.             mx = i-k;
  52.             s = i+1;
  53.             di = 'L';
  54.         }
  55.  
  56.         i = k;
  57.     }
  58.  
  59.     cout << s << ' ' << di;
  60.  
  61.     return 0;
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment