Josif_tepe

Untitled

Feb 25th, 2026
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. //#include <bits/stdc++.h>
  5. using namespace std;
  6.  
  7. typedef long long ll;
  8. const ll MOD = 1e9 + 7;
  9. int main()
  10. {
  11.     ios_base::sync_with_stdio(false);
  12.     int n;
  13.     cin >> n;
  14.    
  15.     vector<int> v(n);
  16.    
  17.     for(int i = 0; i < n; i++) {
  18.         cin >> v[i];
  19.     }
  20.    
  21.     vector<int> left(n, -1);
  22.     vector<int> right(n, n);
  23.    
  24.     for(int i = 0; i < n; i++) {
  25.         for(int j = i - 1; j >= 0; j--) {
  26.             if(v[j] <= v[i]) {
  27.                 left[i] = j;
  28.                 break;
  29.             }
  30.         }
  31.        
  32.         for(int j = i + 1; j < n; j++) {
  33.             if(v[j] <= v[i]) {
  34.                 right[i] = j;
  35.                 break;
  36.             }
  37.         }
  38.     }
  39.    
  40.     ll total_subarrays = (ll)n * (ll)(n + 1) / 2;
  41.     total_subarrays %= MOD;
  42.    
  43.     ll bad_subarrays = 0;
  44.     for(int i = 0; i < n; i++) {
  45.         ll L = i - left[i];
  46.         ll R = right[i] - i;
  47.        
  48.         bad_subarrays += ((L * R) % MOD);
  49.         bad_subarrays %= MOD;
  50.     }
  51.    
  52.     cout << total_subarrays - bad_subarrays << endl;
  53.    
  54.    
  55.    
  56.     return 0;
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment