General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
187487443 Practice:
DaiRuiChen007
1672F2 - 13 C++14 (GCC 6-32) Accepted 140 ms 8796 KB 2023-01-01 04:16:03 2023-01-01 04:16:03
→ Source
// LUOGU_RID: 98400367
#include<bits/stdc++.h>
using namespace std;
const int MAXN=2e5+1;
int a[MAXN],b[MAXN],cnt[MAXN],deg[MAXN];
vector <int> G[MAXN];
inline void solve() {
	int n,u=1;
	scanf("%d",&n);
	for(int i=1;i<=n;++i) deg[i]=0,cnt[i]=0,G[i].clear();
	for(int i=1;i<=n;++i) scanf("%d",&a[i]),++cnt[a[i]];
	for(int i=1;i<=n;++i) scanf("%d",&b[i]);
	for(int i=1;i<=n;++i) if(cnt[a[i]]>cnt[a[u]]) u=i;
	for(int i=1;i<=n;++i) {
		if(a[i]==a[u]||b[i]==a[u]) continue;
		G[a[i]].push_back(b[i]);
		++deg[b[i]];
	}
	queue <int> q;
	for(int i=1;i<=n;++i) if(!deg[i]) q.push(i);
	while(!q.empty()) {
		int p=q.front(); q.pop();
		for(int v:G[p]) {
			--deg[v];
			if(!deg[v]) q.push(v);
		}
	}
	for(int i=1;i<=n;++i) {
		if(deg[i]) {
			puts("WA");
			return ;
		}
	}
	puts("AC");
}
signed main() {
	int T;
	scanf("%d",&T);
	while(T--) solve();
	return 0;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details