题解:P17220 [ICPC 2017 Nanning R] Rearrangement
我们只关心每个数对
我们有两行数,显然隔开
1 1 0 2 2
1 1 1 0 2
那么计
我们还能发现上面的例子
1 1 0 2 2 2
1 0 1 0 2 2
1 1 0 2 0 2
1 0 1 0 2 2
那么若
最后,如果
代码如下,可供参考:
#include<bits/stdc++.h>
using namespace std;
int cnt[3];
int main(){
int t;cin>>t;
while(t--){
int n;cin>>n;
cnt[0]=cnt[1]=cnt[2]=0;
for(int i=1;i<=2*n;i++){
int x;cin>>x;
cnt[x%3]++;
}
if(cnt[1]&&cnt[2]&&cnt[0]<2){
cout<<"NO\n";
continue;
}
if(cnt[1]%2==0&&cnt[0]==2){
cout<<"NO\n";
continue;
}
if(cnt[0]>n){
cout<<"NO\n";
continue;
}
cout<<"YES\n";
}
return 0;
}