Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
35527 | 郭澍宇 | 【J】T3 | C++ | 解答错误 | 55 | 1208 MS | 1528 KB | 1316 | 2024-12-11 20:41:52 |
#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--){ cin>>n; for(int i = 1;i<=n;i++){ cin>>a[i]; } 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){ memset(k,0,sizeof k); int cnt =0; for(int i = 1;i<=n;i++){ if(k[a[i]]==0){ cnt++; clca[cnt]=a[i]; } k[a[i]]++; } sort(clca+1,clca+cnt+1); cout<<cnt<<endl; for(int i = 1;i<=cnt;i++){ cout<<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; } } } cout<<ca<<endl; if(fl)cout<<ansl<<" "; if(fr)cout<<ansr<<" "; cout<<endl; } }