A. Colorear en círculo (pensamiento)

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


Comencé a leer la pregunta incorrecta y luego descubrí que los números adyacentes no son iguales, preste atención al principio y al final. Y el título también se le da a cada ai, bi, ci que no son iguales entre sí, entonces debe haber condiciones para satisfacer el título. Enumere y juzgue directamente si los vecinos izquierdo y derecho son diferentes, y preste atención a la situación al principio y al final.

#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;
}

 

Supongo que te gusta

Origin blog.csdn.net/zstuyyyyccccbbbb/article/details/108897586
Recomendado
Clasificación