原題連結

資料範圍
1≤T≤100,
3≤n≤100,
1≤ai,bi,ci≤100,
保證對于任意 i,滿足 ai≠bi,ai≠ci,bi≠ci。
輸入樣例:
5
3
1 1 1
2 2 2
3 3 3
4
1 2 1 2
2 1 2 1
3 4 3 4
7
1 3 3 1 1 1 1
2 4 4 3 2 2 4
4 2 2 2 4 4 2
3
1 2 1
2 3 3
3 1 2
10
1 1 1 2 2 2 3 3 3 1
2 2 2 3 3 3 1 1 1 2
3 3 3 1 1 1 2 2 2 3
輸出樣例:
1 2 3
1 2 1 2
1 3 4 3 2 4 2
1 3 2
1 2 3 1 2 3 1 2 3 2
題目意思即第i位的數不能等于前一個數,然後注意最後一個數還需要滿足不能等于第一個數
AC代碼:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[4][103];
int main(){
int T;
scanf("%d", &T);
while(T--){
int n;
scanf("%d", &n);
for(int t = 1; t <= 3; ++ t)
for(int i = 1; i <= n; ++ i)
scanf("%d", &a[t][i]);
int pre = -1;
int q;
for(int i = 1; i <= n; ++ i){
for(int t = 1; t <= 3; ++ t){
if(i == n && a[t][n] == q){
continue;
}
if(a[t][i] != pre){
printf("%d ", a[t][i]);
pre = a[t][i];
if(i == 1)q = pre;
break;
}
}
}
printf("\n");
}
return 0;
}