原题链接:
https://vjudge.net/problem/Gym-102780C
AC代码:
#include <algorithm>
#include <bits/stdc++.h>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
const int INF = 0x3fffffff;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e6 + 10;
void __init__() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
} //head
char a[10101];
int cnt[10101];
int main() {
// __init__();
cin >> a;
int len = strlen(a);
for (int i = 0; i < len; i++) {
cnt[a[i]]++;
}
for (int i = 0; i < cnt['[']; i++) {
cout << "[:|||:]" << endl;
cnt[':'] -= 2;
cnt['|'] -= 3;
}
for (int i = 0; i < cnt['\\']; i++) {
cout << ":-\\" << endl;
cnt[':']--;
cnt['-']--;
}
for (int i = 0; i < cnt['P']; i++) {
cout << ":-P" << endl;
cnt[':']--;
cnt['-']--;
}
for (int i = 0; i < cnt['D']; i++) {
cout << ":D" << endl;
cnt[':']--;
}
for (int i = 0; i < cnt['C']; i++) {
cout << ":C" << endl;
cnt[':']--;
}
for (int i = 0; i < cnt['8']; i++) {
cout << "8-0" << endl;
cnt['0']--;
cnt['-']--;
}
for (int i = 0; i < cnt['|']; i++) {
cout << ":-|" << endl;
cnt[':']--;
cnt['-']--;
}
for (int i = 0; i < cnt['%']; i++) {
cout << "%0" << endl;
cnt['0']--;
}
for (int i = 0; i < cnt['0']; i++) {
cout << ":-0" << endl;
cnt[':']--;
cnt['-']--;
}
for (int i = 0; i < cnt['E']; i++) {
cout << ":-E" << endl;
cnt[':']--;
cnt['-']--;
}
for (int i = 0; i < cnt['X']; i++) {
cout << ":-X" << endl;
cnt[':']--;
cnt['-']--;
}
for (int i = 0; i < cnt[126]; i++) {
cout << ":" << (char) 126 << "(" << endl;
cnt[':']--;
cnt['(']--;
}
int mi = min(cnt[';'], cnt[')']);
for (int i = 0; i < mi; i++) {
cout << ";-)" << endl;
cnt[';']--;
cnt[')']--;
}
if (cnt[';'] == 0) {
for (int i = 0; i < cnt[')']; i++) {
cout << ":)" << endl;
}
for (int i = 0; i < cnt['(']; i++) {
cout << ":(" << endl;
}
} else {
for (int i = 0; i < cnt[';']; i++) {
cout << ";-(" << endl;
cnt['(']--;
}
for (int i = 0; i < cnt['(']; i++) {
cout << ":(" << endl;
}
}
cout << "LOL" << endl;
return 0;
}
一定注意’~'号的处理,太坑了,训练赛的时候疯狂wa,赛后稍微改了一下输出就AC了,无情