이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int seg[400001];
int lazy[400001];
void prop(int p,int l,int r){
seg[p]+=lazy[p];
if(l!=r){
lazy[p*2]+=lazy[p];
lazy[p*2+1]+=lazy[p];
}
lazy[p] = 0;
}
void build(int p,int l,int r){
if(l==r){
seg[p] = l;
return ;
}
int md = (l+r)/2;
build(p*2,l,md);build(p*2+1,md+1,r);
seg[p] = min(seg[p*2],seg[p*2+1]);
}
void update(int p,int l,int r,int lq,int rq,int val){
prop(p,l,r);
if(l>=lq&&r<=rq){
lazy[p]+=val;
prop(p,l,r);
return ;
}
if(l>rq||r<lq)return ;
int md = (l+r)/2;
update(p*2,l,md,lq,rq,val);update(p*2+1,md+1,r,lq,rq,val);
seg[p] = min(seg[p*2],seg[p*2+1]);
}
int query(int p,int l,int r){
if(l==r){
return l;
}
int md = (l+r)/2;
prop(p*2,l,md);prop(p*2+1,md+1,r);
if(seg[p*2]==0)return query(p*2,l,md);
else return query(p*2+1,md+1,r);
}
int main(){
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int n,q;
cin>>n>>q;
int arr1[n+1],arr2[n+1],arr3[n+1];
int ind1[n+1],ind2[n+1],ind3[n+1];
for(int i = 1;i<=n;i++){
int x;cin>>x;
ind1[x] = i;
}for(int i = 1;i<=n;i++){
int x;cin>>x;
ind2[x] = i;
}for(int i = 1;i<=n;i++){
int x;cin>>x;
ind3[x] = i;
}
build(1,1,n);
for(int i = 1;i<=n;i++){
update(1,1,n,max({ind1[i],ind2[i],ind3[i]}),n,-1);
}
while(q--){
int ty;cin>>ty;
if(ty==1){
int x;cin>>x;
prop(1,1,n);
if(max({ind1[x],ind2[x],ind3[x]})<=query(1,1,n)){
cout<<"DA\n";
}else cout<<"NE\n";
}else{
int p,a,b;cin>>p>>a>>b;
update(1,1,n,max({ind1[a],ind2[a],ind3[a]}),n,1);
update(1,1,n,max({ind1[b],ind2[b],ind3[b]}),n,1);
if(p==1)swap(ind1[a],ind1[b]);
if(p==2)swap(ind2[a],ind2[b]);
if(p==3)swap(ind3[a],ind3[b]);
update(1,1,n,max({ind1[a],ind2[a],ind3[a]}),n,-1);
update(1,1,n,max({ind1[b],ind2[b],ind3[b]}),n,-1);
}
}
}
컴파일 시 표준 에러 (stderr) 메시지
tenis.cpp: In function 'int main()':
tenis.cpp:48:9: warning: unused variable 'arr1' [-Wunused-variable]
48 | int arr1[n+1],arr2[n+1],arr3[n+1];
| ^~~~
tenis.cpp:48:19: warning: unused variable 'arr2' [-Wunused-variable]
48 | int arr1[n+1],arr2[n+1],arr3[n+1];
| ^~~~
tenis.cpp:48:29: warning: unused variable 'arr3' [-Wunused-variable]
48 | int arr1[n+1],arr2[n+1],arr3[n+1];
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |