Submission #1311004

#TimeUsernameProblemLanguageResultExecution timeMemory
1311004discontinuousMountains (NOI20_mountains)C++20
2 / 100
290 ms32436 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using namespace std; #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> #define pb push_back #define int long long const int MOD = 1e9 + 7; const int INF = 1e15; const int N = 1e6; int n, m, k, a, b, c, d, h, l, r, q, u, v, x, y; vector<int> arr(N); void solve() { cin >> n; for(int i = 0; i<n; i++) { cin >> arr[i]; } ordered_set all; all.insert(arr[0]); vector<int> smaller(n); vector<int> bigger(n); for(int i = 1; i<n; i++) { smaller[i] = all.order_of_key(arr[i]); all.insert(arr[i]); } all.clear(); all.insert(arr[n-1]); for(int i = n-2; i>=0; i--) { bigger[i] = all.order_of_key(arr[i]); all.insert(arr[i]); } c = 0; for(int i = 1; i<n-1; i++) c += smaller[i]*bigger[i]; cout << c; } int32_t main() { ios::sync_with_stdio(false); cout.tie(0); cin.tie(0); int tc = 1; // cin >> tc; while(tc--) { solve(); cout << "\n"; } return 0; }
#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...