B题,求解为什么只过75%的样例
求解为什么只过75%的样例
#include<bits/stdc++.h> using namespace std; int main() { int t; cin>>t; for(int w=0;w<t;w++) { int n; cin>>n; int a[n]; for(int i=0;i<n;i++) { cin>>a[i]; } int count=0; int cur1=-300,cur2=-300;//数字 int tmp1=0,tmp2=0; unordered_map<int,int> umap1,umap2; for(int i=0;i<n;i++) { if(a[i]==a[n-1-i]) count+=1; else { umap1[a[i]]++; if(umap1[a[i]]>tmp1) { cur1=a[i]; tmp1=umap1[a[i]]; } } } for(int i=0;i<n;i++) { if(a[i]==a[n-1-i]) continue; else if(a[i]==cur1||a[n-1-i]==cur1) { a[n-1-i]=cur1; } else { umap2[a[i]]++; if(umap2[a[i]]>tmp2) { cur2=a[i]; tmp2=umap2[a[i]]; } } } cout<<n-count-tmp1-tmp2<<endl; } }
}