Submission #49425

#TimeUsernameProblemLanguageResultExecution timeMemory
49425rzbtVudu (COCI15_vudu)C++14
56 / 140
1086 ms65536 KiB
#include <bits/stdc++.h> #define mp make_pair #define pb push_back #define F first #define S second #define all(x) x.begin(),x.end() #define MAXN 1000005 typedef long long ll; using namespace std; ll n,p,res; ll niz[MAXN]; ll bit[MAXN]; void update(ll p,ll x){ for(;p<MAXN;p+=(p&(-p))) bit[p]+=x; } ll dobij(ll p){ ll z=0; for(;p>0;p-=(p&(-p))) z+=bit[p]; return z; } vector<ll> s; map<ll,ll> m; int main() { scanf("%lld", &n); for(ll i=1;i<=n;i++) scanf("%lld",niz+i); ll tzbir=0; scanf("%lld",&p); for(ll i=1;i<=n;i++){ tzbir+=niz[i]-p; s.pb(tzbir); } sort(all(s)); s.erase(unique(all(s)),s.end()); ll tbr=0; for(auto x:s){ tbr++; m[x]=tbr; } tzbir=0; for(ll i=1;i<=n;i++){ tzbir+=niz[i]-p; if(tzbir>=0)res++; ll t=m[tzbir]; res+=dobij(t); update(t,1); } printf("%lld",res); return 0; }

Compilation message (stderr)

vudu.cpp: In function 'int main()':
vudu.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld", &n);
     ~~~~~^~~~~~~~~~~~
vudu.cpp:32:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%lld",niz+i);
         ~~~~~^~~~~~~~~~~~~~
vudu.cpp:34:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld",&p);
     ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...