Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
35549 | 郭澍宇 | 【J】T3 | C++ | 编译错误 | 0 | 0 MS | 0 KB | 1470 | 2024-12-11 20:54:55 |
#include<bits/stdc++.h> using namespace std; int n,a[200005]; int k[200005]; int clca[200005]; int ansl,ansr; int ca; int cnt; int main(){ int t; cin>>t; while(t--){ scanf("%d",&n); int maxn=0; for(int i = 1;i<=n;i++){ scanf("%d",&a[i]); maxn=max(a[i],maxn); } int l=1,r=n; bool flag =1; while(l<=r){ if(a[l]==a[r]) { l++,r--; } else{ flag =0; ansl=a[l],ansr=a[r]; break; } } if(flag){ for(int i = 1;i<=maxn;i++)k[i]=0; inr cnt =0; for(int i = 1;i<=n;i++){ k[a[i]]++; } for(int i = 0;i<=maxn;i++){ if(k[i]>=1){ cnt++; clca[cnt]=i; } } cout<<cnt<<endl; for(int i = 1;i<=cnt;i++){ printf("%d ",clca[i]); } cout<<endl; continue; } ca=2; l=1,r=n; bool fl=1,fr=1; while(l<=r){ if(a[l]==a[r]) { l++,r--; } else{ while(a[l]==ansl){ l++; } while(a[r]==ansl) {r--; } if(a[l]!=a[r]){ fl=0; ca--; break; } } } l=1,r=n; while(l<=r){ if(a[l]==a[r]) { l++,r--; } else{ while(a[l]==ansr){ l++; } while(a[r]==ansr) {r--; } if(a[l]!=a[r]){ fr=0; ca--; break; } } } printf("%d\n",&ca); if(ansl>ansr){ swap(ansl,ansr); swap(fl,fr); } if(fl)printf("%d ",&ansl); if(fr)printf("%d ",&ansr); printf("\n "); } }