Vasya and Multisets - codeforce

ps:没想清楚就码代码是很危险的!还有要仔细审题,其中一个集合是可以空集的。

int n;
int a[200], cnt[200];

int main()
{
    cin >> n;
    Rep(i, 1, n) {
        cin >> a[i];
        cnt[a[i]]++;
    }
    int t1 = 0, t2 = 0, t3 = 0;
    Rep(i, 1, 100) {
        if (cnt[i] == 1) t1++;
        else if (cnt[i] == 2) t2++;
        else if (cnt[i] > 2) t3++;
    }
    if ((t1 & 1) && (!t3)) {
        puts("NO");
        return 0;
    }
    puts("YES");

    char ans[200];
    Rep(i, 1, 100) ans[i] = 'A';

    int s = 0;
    Rep(i, 1, n) if (cnt[a[i]] == 1) {
        s++;
        ans[i] = (s & 1 ? 'A' : 'B');
    }

    if (t1 & 1) Rep(i, 1, n) if (cnt[a[i]] > 2) {
        ans[i] = 'B';
        break;
    }

    Rep(i, 1, n) cout << ans[i];
    cout << endl;
    return 0;
}

 

posted @ 2018-09-21 18:21  天之道,利而不害  阅读(270)  评论(0编辑  收藏  举报