Submission #270006

#TimeUsernameProblemLanguageResultExecution timeMemory
270006mayhoubsalehVudu (COCI15_vudu)C++14
56 / 140
731 ms65540 KiB
#include <bits/stdc++.h> #define ll long long #define pb push_back #define left 2*i+1 #define righ 2*i+2 #define mid (l+r)/2 #define IOS ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; const ll maxn=2e6; const ll inf=1e9+10; const ll mod=1e9+7; const ll base=27; ll n,avg; ll pre[maxn]; set<ll>s; ll cnt; unordered_map<ll,ll>h; ll bit[maxn]; void add(ll id){ for(;id<=cnt;id+=id&(-id)){ bit[id]++; } } ll qur(ll id){ ll ret=0; for(;id;id-=id&(-id)){ ret+=bit[id]; } return ret; } int main() { IOS cin>>n; for(ll i=1;i<=n;i++){ cin>>pre[i]; } cin>>avg; s.insert(0); for(ll i=1;i<=n;i++){ pre[i]=pre[i]-avg+pre[i-1]; s.insert(pre[i]); } for(auto it:s){ h[it]=++cnt; } //cout<<cnt<<endl; add(h[0]); ll ans=0; for(ll i=1;i<=n;i++){ ans+=qur(h[pre[i]]); add(h[pre[i]]); } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...