Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
35527 郭澍宇 【J】T3 C++ 解答错误 55 1208 MS 1528 KB 1316 2024-12-11 20:41:52

Tests(11/20):


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


测评信息: