Advertisement
Ritam_C

HackerEarthShinoAndPairs

Jan 15th, 2021
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ld long double
  4. #define pb push_back
  5. #define p_b pop_back
  6. #define si stack<int>
  7. #define sll stack<ll>
  8. #define sc stack<char>
  9. #define vi vector<int>
  10. #define vll vector<ll>
  11. #define mii map<int, int>
  12. #define msi map<string, int>
  13. #define mci map<char, int>
  14. #define qc queue<char>
  15. #define qi queue<int>
  16. #define qll queue<ll>
  17. using namespace std;
  18.  
  19. int main(){
  20.     ios_base::sync_with_stdio(false);
  21.     cin.tie(NULL);
  22.     ll n;
  23.     cin >> n;
  24.  
  25.     vll v;
  26.     for(int i = 0; i < n; i++){
  27.         int x;
  28.         cin >> x;
  29.         v.pb(x);
  30.     }
  31.    
  32.     if(n == 1){
  33.         cout << 0 << "\n";
  34.     }
  35.  
  36.     else{
  37.         set<pair<ll, ll>> s;
  38.         pair<ll, ll> p;
  39.         s.insert(p);
  40.         for(ll j = 0; j < n-1; j++){
  41.             p.first = (v[j] > v[j+1]) ? v[j] : v[j+1];
  42.             p.second = (v[j] < v[j+1]) ? v[j] : v[j+1];
  43.             for(ll i = j+2; i < n; i++){
  44.                 pair<ll, ll> tmp = p;
  45.                 if(v[i] > p.first && v[i] > p.second){
  46.                     if(p.first > p.second){
  47.                         p.second = v[i];
  48.                     } else{
  49.                         p.first = v[i];
  50.                     }
  51.                 } else if(v[i] > p.first && v[i] < p.second){
  52.                     p.first = v[i];
  53.                 } else if(v[i] < p.first && v[i] > p.second){
  54.                     p.second = v[i];
  55.                 }
  56.                 if(p.first < p.second){
  57.                     swap(p.first, p.second);
  58.                 }
  59.                 if(p != tmp){
  60.                     s.insert(p);
  61.                 }
  62.             }
  63.         }
  64.  
  65.         cout << s.size() << "\n";
  66.     }
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement