Submission #260172

#TimeUsernameProblemLanguageResultExecution timeMemory
260172sckmdVudu (COCI15_vudu)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define MAXN 1000005 ll a[MAXN]; ll bit[MAXN]; map <ll,int> mp; void update(int idx,int val) { while(idx < MAXN) { bit[idx] += val; idx += idx&(-idx); } } ll get(int idx) { ll ret = 0LL; while(idx > 0) { ret += bit[idx]; idx -= idx&(-idx); } return ret; } ll get(int l,int r) { ll ret = get(r); if(l > 0)ret -= get(l-1); return ret; } int main() { ios_base::sync_with_stdio(false); int n; cin >> n; for(int i = 1; i <= n; i++)cin >> a[i]; int p; cin >> p; for(int i = 1; i <= n; i++)a[i]-=p,a[i]+=a[i-1]; vector <int> all; all.push_back(0); for(int i = 1; i <= n; i++)all.push_back(a[i]); sort(all.begin(),all.end()); erase(unique(all.begin(),all.end()),all.end()); for(int j = 0; j < all.size(); j++) { mp[all[j]]=j+1; } update(mp[0],1); ll ans = 0LL; for(int i = 1; i <= n; i++) { ans += get(mp[a[i]]); update(mp[a[i]],1); } cout << ans; return 0; }

Compilation message (stderr)

vudu.cpp: In function 'int main()':
vudu.cpp:48:3: error: 'erase' was not declared in this scope
   erase(unique(all.begin(),all.end()),all.end());
   ^~~~~
vudu.cpp:48:3: note: suggested alternative: 'raise'
   erase(unique(all.begin(),all.end()),all.end());
   ^~~~~
   raise
vudu.cpp:49:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j = 0; j < all.size(); j++)
                  ~~^~~~~~~~~~~~