Submission #467703

#TimeUsernameProblemLanguageResultExecution timeMemory
467703ETKBubble Sort 2 (JOI18_bubblesort2)C++14
Compilation error
0 ms0 KiB
#include "bubblesort2.h" #include <bits/stdc++.h> #define rep(i,a,b) for(int i=(a);i<=(b);++i) #define per(i,a,b) for(int i=(a);i>=(b);--i) #define pii pair<int,int> #define vi vector<int> #define fi first #define se second #define pb push_back #define ALL(x) x.begin(),x.end() #define ll long long using namespace std; inline ll read(){ ll x=0,f=1;char ch=getchar(); while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();} while (isdigit(ch)){x=x*10+ch-48;ch=getchar();} return x*f; } const int inf=INT_MAX/2; struct SegTree{ int s; vi mx,lz; SegTree(int n){ s=1; while(s<n)s*=2; mx.resize(2*s,0),lz.resize(2*s,0); } #define ls (p<<1) #define rs (p<<1|1) void pushdown(int p){ mx[p]+=lz[p],lz[ls]+=lz[p],lz[rs]+=lz[p]; lz[p]=0; } int Q(int p){return mx[p]+lz[p];} void Add(int p,int L,int R,int l,int r,int v){ if(r<=L||R<=l)return; if(l<=L&&R<=r){ lz[p]+=v; return; } pushdown(p); int mid=(L+R)>>1; Add(ls,L,mid,l,r,v); Add(rs,mid,R,l,r,v); mx[p]=max(Q(ls),Q(rs)); } void Add(int l,int r,int v){ if(l<r)Add(1,0,s,l,r,v); } }; vi countScans(vi a,vi x,vi v){ int n=a.size(),q=x.size(); vector<pii> lsh; rep(i,0,n-1)lsh.pb(pii(a[i],i)); rep(i,0,n-1)lsh.pb(pii(v[i],x[i])); sort(ALL(lsh)); lsh.erase(unique(ALL(lsh)),lsh.end()); int s=lsh.size(); SegTree seg(s); seg.Add(0,s,-inf); const auto insert = [&](int p,int r){ int i=lower_bound(ALL(lsh),pii(p,r))-lsh.begin(); seg.Add(i,i+1,inf+r); seg.Add(i+1,s,-1); }; const auto erase = [&](int p,int r){ int i=lower_bound(ALL(lsh),pii(p,r))-lsh.begin(); seg.Add(i,i+1,-(inf+r)); seg.Add(i+1,s,1); }; rep(i,0,n-1)insert(a[i],i); vi res(q); rep(i,0,q-1){ erase(a[x[i]],x[i]); insert(v[i],x[i]); a[x[i]]=v[i];res[i]=Q(1); } return res; }

Compilation message (stderr)

bubblesort2.cpp: In function 'std::vector<int> countScans(std::vector<int>, std::vector<int>, std::vector<int>)':
bubblesort2.cpp:76:29: error: 'Q' was not declared in this scope
   76 |         a[x[i]]=v[i];res[i]=Q(1);
      |                             ^