This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/*
بسم الله الرحمن الرحيم
Author:
                          (:Muhammad Aneeq:)
*/
#include <iostream>
#include <set>
#include <vector>
using namespace std;
inline void solve()
{
	int n,q;
	cin>>n>>q;
	int loc[3][n];
	for (int i=0;i<3;i++)
	{
		for (int j=0;j<n;j++)
		{
			int x;
			cin>>x;
			loc[i][x-1]=j;
		}
	}
	while (q--)
	{
		int ty;
		cin>>ty;
		if (ty==1)
		{
			int x;
			cin>>x;
			x--;
			int mind[3]={loc[0][x],loc[1][x],loc[2][x]};
			vector<int>f;
			for (int i=0;i<n;i++)
				if (i!=x)
					f.push_back(i);
			while (f.size())
			{
				vector<int>g;
				for (auto i:f)
				{
					bool w=1;
					for (int k=0;k<3;k++)
					{
						if (mind[k]<loc[k][i])
						{
							w=0;
							for (int j=0;j<3;j++)
								mind[j]=min(mind[j],loc[j][i]);
							break;
						}
					}
					if (w)
						g.push_back(i);
				}
				if (f.size()==g.size())
					break;
				f=g;
			}
			if (f.size())
				cout<<"NE\n";
			else
				cout<<"DA\n";
		}
		else
		{
			int p,a,b;
			cin>>p>>a>>b;
			p--;a--;b--;
			swap(loc[p][a],loc[p][b]);
		}
	}
}
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
        solve();
}
| # | 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... |