Submission #1230445

#TimeUsernameProblemLanguageResultExecution timeMemory
1230445warrennVudu (COCI15_vudu)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; #define int long long int n,p; int a[1000002]; int b[1000002]; int pref[1000002]; map<int,int>conv; int cnt=1; vector<int>tmp,st; void update(int idx,int l,int r,int pos,int val){ if(l==r){ st[idx]+=val; return ; } int mid=(l+r)/2; if(pos<=mid)update(2*idx,l,mid,pos,val); else update(2*idx+1,mid+1,r,pos,val); st[idx]=st[2*idx]+st[2*idx+1]; } int query(int idx,int l,int r,int posl,int posr){ if(l>=posl && r<=posr)return st[idx]; if(l>posr || r<posl)return 0; int mid=(l+r)/2; return query(2*idx,l,mid,posl,posr)+query(2*idx+1,mid+1,r,posl,posr); } int conv(int hah){ int idx=lower_bound(tmp.begin(),tmp.end(),hah)-tmp.begin(); return idx+1; } signed main(){ cin>>n; for(int q=1;q<=n;q++){ cin>>a[q]; } cin>>p; for(int q=1;q<=n;q++){ pref[q]=pref[q-1]+a[q]; b[q]=pref[q]-p*q; tmp.push_back(b[q]); } tmp.push_back(0); sort(tmp.begin(),tmp.end()); tmp.erase(unique(tmp.begin(),tmp.end()),tmp.end()); st=vector<int>(4*cnt+1,0); int ans=0; update(1,1,cnt,conv(0),1); for(int q=1;q<=n;q++){ ans+=query(1,1,cnt,1,conv(b[q])); // cout<<ans<<" "<<conv[b[q]]<<endl; update(1,1,cnt,conv(b[q]),1); } cout<<ans<<endl; }

Compilation message (stderr)

vudu.cpp:31:17: error: 'long long int conv(long long int)' redeclared as different kind of entity
   31 | int conv(int hah){
      |                 ^
vudu.cpp:9:13: note: previous declaration 'std::map<long long int, long long int> conv'
    9 | map<int,int>conv;
      |             ^~~~
vudu.cpp: In function 'int main()':
vudu.cpp:53:24: error: no match for call to '(std::map<long long int, long long int>) (int)'
   53 |     update(1,1,cnt,conv(0),1);
      |                    ~~~~^~~
vudu.cpp:56:34: error: no match for call to '(std::map<long long int, long long int>) (long long int&)'
   56 |         ans+=query(1,1,cnt,1,conv(b[q]));
      |                              ~~~~^~~~~~
vudu.cpp:58:28: error: no match for call to '(std::map<long long int, long long int>) (long long int&)'
   58 |         update(1,1,cnt,conv(b[q]),1);
      |                        ~~~~^~~~~~