Submission #1193460

#TimeUsernameProblemLanguageResultExecution timeMemory
1193460zyntherixMountains (NOI20_mountains)C++20
2 / 100
239 ms33288 KiB
#include <bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using ordst = tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>; const int mod = 1e9 + 7; int n; int solve(vector<int> arr) { int pref[n], suff[n]; pref[0] = 0; ordst ms, sm; ms.insert(arr[0]); for (int i = 1; i < n; i++) { pref[i] = ms.order_of_key(arr[i]); ms.insert(arr[i]); } suff[n - 1] = 0; sm.insert(arr[n - 1]); for (int i = n - 2; i >= 0; i--) { suff[i] = sm.order_of_key(arr[i]); sm.insert(arr[i]); } int ans = 0; for (int i = 0; i < n; i++) { ans += (pref[i] * suff[i]); } return ans; } // int solve2(vector<int> arr) // { // int ans = 0; // for (int i = 0; i < n; i++) // { // for (int j = i + 1; j < n; j++) // { // for (int k = j + 1; k < n; k++) // { // ans += (arr[j] > arr[k] && arr[j] > arr[i]); // } // } // } // // cout << ans << '\n'; // return ans; // } signed main() { ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); int t = 1; // cin >> t; while (t--) { // n = 25; cin >> n; vector<int> x(n); for (int i = 0; i < n; i++) { // x[i] = rand() % 100; cin >> x[i]; } int a = solve(x); // int b = solve2(x); // if (a != b) // { // cout << n << '\n'; // for (int i = 0; i < n; i++) // { // cout << x[i] << ' '; // } // cout << '\n' // << a << ' ' << b << '\n'; // break; // } cout << a << '\n'; } // cout << "\nDone!\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...