#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=(int)1e6;
pair<int,int>st[N*4+2];
int lazy[N*4+2];
int a[3][N+2]={};
int n;
pair<int,int>compare(pair<int,int>&x,pair<int,int>&y){
	if (x.first>y.first) return y;
	
	return x;
}
#define lef(id) id*2
#define rig(id) id*2+1
void pushdown(int id){
	int&t=lazy[id];
	lazy[lef(id)]+=t,st[lef(id)].first+=t;
	lazy[rig(id)]+=t,st[rig(id)].first+=t;
	t=0;
	return ;
}
void build(int id,int l,int r){
	if (l>r) return;
	if (l==r) st[id]={l,l};
	else{
		int m=(l+r)/2;
		build(lef(id),l,m);
		build(rig(id),m+1,r);
		st[id]=compare(st[lef(id)],st[rig(id)]);
	}
}
void upd(int id,int l,int r,int u,int v,int val){
	if (l>v||r<u) return;
	if (u<=l&&r<=v){
		st[id].first+=val;
		lazy[id]+=val;
		return;
	}
	int m=(l+r)/2;
	pushdown(id);
	upd(lef(id),l,m,u,v,val);
	upd(rig(id),m+1,r,u,v,val);
	st[id]=compare(st[lef(id)],st[rig(id)]);
	return;
}
const int INF=(int)1e9+7;
pair<int,int>Get(int id,int l,int r,int u,int v){
	if (l>v||r<u) return {INF,INF};
	if (u<=l&&r<=v) return st[id];
	int m=(l+r)/2;
	pushdown(id);
	pair<int,int>g1=Get(lef(id),l,m,u,v),g2=Get(rig(id),m+1,r,u,v);
	return compare(g1,g2);
}
void modify(int x,int add){
	int mx=max({a[1][x],a[2][x],a[3][x]});
	upd(1,1,n,mx,n,add);
	return;
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0) ; cout.tie(0);
	
	int q;
	cin>>n>>q;
	for(int i=1;i<=3;++i){
		for(int j=1;j<=n;++j) cin>>a[i][j];
	}
	build(1,1,n);
	for(int i=1;i<=n;++i) modify(i,-1);
	while(q--){
		int t; cin>>t;
		if (t==1){
			int x; cin>>x;
			int mx=max({a[1][x],a[2][x],a[3][x]});
			if (mx<=st[1].second && st[1].first==0){
				cout<<"DA\n";
			}
			else cout<<"NE\n";
		}
		else{
			int p,A,B; cin>>p>>A>>B;
			modify(A,1);
			modify(B,1);
			swap(a[p][A],a[p][B]);
			modify(A,-1);
			modify(B,-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... |