A. Circle Coloring(思维)

https://codeforces.com/contest/1408/problem/A


开始看错题目了,然后发现是相邻的数不相等,注意头尾。而且题目也给了每一个ai,bi,ci互不相等,那么必然就存在满足题目的条件。直接枚举判一下左右相邻不同取那个,同时注意一下首尾的情况。

#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=110;
typedef int LL;
LL a[maxn],b[maxn],c[maxn],p[maxn];
int main(void)
{
  cin.tie(0);std::ios::sync_with_stdio(false);
  LL t;cin>>t;
  while(t--)
  {
  	LL n;cin>>n;
  	for(LL i=0;i<=n+10;i++) a[i]=b[i]=c[i]=p[i]=0;
  	for(LL i=1;i<=n;i++) cin>>a[i];
  	for(LL i=1;i<=n;i++) cin>>b[i];
  	for(LL i=1;i<=n;i++) cin>>c[i];
  	for(LL i=1;i<=n;i++){
  		if(i==n){
  			if(a[i]!=p[1]&&a[i]!=p[i-1]) p[i]=a[i];
  			else if(b[i]!=p[1]&&b[i]!=p[i-1]) p[i]=b[i];
  			else if(c[i]!=p[1]&&c[i]!=p[i-1]) p[i]=c[i];
		}
		else if(a[i]!=p[i-1]) p[i]=a[i];
		else if(b[i]!=p[i-1]) p[i]=b[i];
		else if(c[i]!=p[i-1]) p[i]=c[i];
	}
	for(LL i=1;i<=n;i++) cout<<p[i]<<" ";
	cout<<endl;
  }
return 0;
}

猜你喜欢

转载自blog.csdn.net/zstuyyyyccccbbbb/article/details/108897586