Submission #220372

#TimeUsernameProblemLanguageResultExecution timeMemory
220372XmtosXVudu (COCI15_vudu)C++17
70 / 140
802 ms65540 KiB
#include <bits/stdc++.h> using namespace std; const int N=1e6+6; int n,a[N],p; long long pfx[N]; set<long long> s; int BIT[N]; map <long long,int> r; int query(int x) { int sum = 0; x++; while (x>0) { sum+= BIT[x]; x-=x&(-x); } return sum; } void update(int x) { x++; while (x <= n) { BIT[x] ++; x+=x&(-x); } } int main() { scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d",&p); for (int i=1;i<=n;i++) { pfx[i]=pfx[i-1]+a[i]-p; s.insert(pfx[i]); } s.insert(0); int cnt=0; while (!s.empty()) { r[*s.begin()]=cnt++; s.erase(s.begin()); } for (int i=0;i<=n;i++) { pfx[i]=r[pfx[i]]; } long long ans=0; for (int i=0;i<=n;i++) { ans+= query(pfx[i]); update(pfx[i]); } cout <<ans; return 0; }

Compilation message (stderr)

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