Submission #1191055

#TimeUsernameProblemLanguageResultExecution timeMemory
1191055Cebrayil09Mountains (NOI20_mountains)C++20
0 / 100
2095 ms4544 KiB
#include <bits/stdc++.h> using namespace std; #define pii pair < int , int > #define eb emplace_back #define pb push_back #define int long long #define fi first #define se second const int inf = 1e18; void solve() { int n; cin >> n; vector<int> v(n+1); for(int i = 1;i <= n;i++) cin >> v[i]; vector<int> a = {v[1]}; map < int , int > m; m[v[1]] = 0; int ans = 0; for(int i = 2;i <= n;i++) { int res = 0; int l = 0 , r = a.size()-1, in = -1; while(l <= r) { int mid = l + (r-l)/2; if(a[mid] > v[i]) { in = mid; r = mid-1; } else l = mid+1; } if(in != -1) { for(int j = in;j < a.size();j++) { ans += m[a[j]]; res += m[a[j]]; } } l = 0, r = a.size()-1, in = -1; while(l <= r) { int mid = l + (r-l)/2; if(a[mid] < v[i]) { in = mid; l = mid+1; } else r = mid-1; } if(!m.count(v[i])) { a.pb(v[i]); sort(a.begin(), a.end()); } m[v[i]] += in+1; } cout << ans << "\n"; } signed main() { ios_base::sync_with_stdio(0); cout.tie(0); int t = 1; //cin >> t; while(t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...