Submission #446263

#TimeUsernameProblemLanguageResultExecution timeMemory
446263zxcvbnmVudu (COCI15_vudu)C++14
0 / 140
3 ms588 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define int ll struct Ft { vector<ll> bit; int n; void build(vector<ll> a) { n = a.size()+2; bit.assign(2*n, 0); } void update(int idx, int x) { while(idx <= n) { bit[idx] += x; idx += idx & -idx; } } ll sum(int idx) { ll sum = 0; while(idx > 0) { sum += bit[idx]; idx -= idx & -idx; } return sum; } }; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); freopen("test.in", "r", stdin); int n; cin >> n; vector<int> a(n); for(int& i : a) { cin >> i; } int p; cin >> p; vector<ll> sum = {0}; for(int i : a) { sum.push_back(sum.back()+(i-p)); } vector<ll> sums = sum; sort(sums.begin(), sums.end()); unordered_map<ll, int> mp; int idx = 1; for(int i = 0; i < (int) sums.size(); i++) { if (i != 0 && sums[i-1] == sums[i]) continue; mp[sums[i]] = idx++; } Ft ft; ft.build(sums); ll ans = 0; for(ll i : sum) { ans += ft.sum(mp[i]); ft.update(mp[i], +1); } cout << ans << "\n"; return 0; }

Compilation message (stderr)

vudu.cpp: In function 'int main()':
vudu.cpp:30:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     freopen("test.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...