Submission #1277367

#TimeUsernameProblemLanguageResultExecution timeMemory
1277367vuquangsangMountains (NOI20_mountains)C++20
100 / 100
113 ms7620 KiB
#include <bits/stdc++.h> using namespace std; const int N = 3e5 + 2; int n; long long a[N]; void compress() { vector<long long> V; for(int i = 1; i <= n; i++) V.push_back(a[i]); sort(V.begin(), V.end()); for(int i = 1; i <= n;i++) { a[i] = lower_bound(V.begin(), V.end(), a[i]) - V.begin() + 1; } } long long bit[N]; void upd(int x, int v) { for(; x <= n; x += x &-x) bit[x] += v; } long long get(int x) { long long ans = 0; for(; x >= 1; x -= x & -x) ans += bit[x]; return ans; } long long get(int l, int r) { return get(r) - get(l - 1); } long long Res[N]; void solve() { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; compress(); for(int i = 1; i <= n; i++) { Res[i] = get(1, a[i] - 1); upd(a[i], 1); } for(int i = 1; i <= n; i++) bit[i] = 0; long long ans = 0; for(int i = 1; i <= n; i++) { ans += get(a[i] + 1, n); upd(a[i], Res[i]); } cout << ans; } main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define TASK "mountains" if(fopen(TASK".INP", "r")) { freopen(TASK".INP", "r", stdin); freopen(TASK".OUT", "w", stdout); } solve(); cerr << "\nTime" << 0.001 * clock() << "s "; return 0; }

Compilation message (stderr)

Mountains.cpp:54:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   54 | main()
      | ^~~~
Mountains.cpp: In function 'int main()':
Mountains.cpp:60:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   60 |         freopen(TASK".INP", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Mountains.cpp:61:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   61 |         freopen(TASK".OUT", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#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...