1 条题解
-
0Guest LV 0 MOD
-
1
#include<bits/stdc++.h> using namespace std; int n,flag=0,flag2=0,first=1; int a[105],cnt[105],sum[5]; char ans[105]; int main() { scanf("%d",&n); for(int i=1; i<=n; i++) { scanf("%d",&a[i]); cnt[a[i]]++; } for(int i=1; i<105; i++) if(cnt[i]==1) sum[1]++; else if(cnt[i]==2) sum[2]++; else if(cnt[i]>=3) sum[3]++; if(sum[1]%2==0) { for(int i=1; i<=n; i++) if(cnt[a[i]]==1) { ans[i]='A'+flag; flag^=1; } else ans[i]='A'; } else { if(sum[3]==0) { printf("NO\n"); exit(0); } else { for(int i=1; i<=n; i++) if(cnt[a[i]]==1) { ans[i]='A'+flag; flag^=1; } else { if(cnt[a[i]]==2) ans[i]='A'; if(cnt[a[i]]>=3&&first) { ans[i]='A'+flag; flag^=1; first=0; flag2=flag; } else ans[i]='A'+flag2; } } } printf("YES\n"); for(int i=1; i<=n; i++) printf("%c",ans[i]); return 0; }
- 1