Skip to content

Instantly share code, notes, and snippets.

@1119-2916
Created September 26, 2017 10:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 1119-2916/31aa46ff04de849a27b213251198f230 to your computer and use it in GitHub Desktop.
Save 1119-2916/31aa46ff04de849a27b213251198f230 to your computer and use it in GitHub Desktop.
codfes2017quala-c
signed main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(0);
int2(a, b);
vector<string> yui(a);
rep(i, a) {
cin >> yui[i];
}
vi cnt(26, 0);
rep(i, a) {
rep(j, b) {
cnt[yui[i][j] - 'a']++;
}
}
vi kyoko(4, 0);
rep(i, cnt.size()) {
kyoko[cnt[i]%4]++;
}
if (a % 2 && b % 2) {
if (kyoko[3]) {
kyoko[3]--;
kyoko[1]++;
kyoko[2]++;
}
if (kyoko[3]) {
cout << "No" << endl;
return 0;
}
if (kyoko[1] == 1 &&
kyoko[2] <= (a/2+b/2)) {
cout << "Yes" << endl;
return 0;
} else {
cout << "No" << endl;
return 0;
}
} else if (a % 2) {
if (kyoko[3] || kyoko[1]) {
cout << "No" << endl;
return 0;
}
if (kyoko[2] <= b / 2) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
} else if (b % 2) {
if (kyoko[3] || kyoko[1]) {
cout << "No" << endl;
return 0;
}
if (kyoko[2] <= a / 2) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
} else {
if (kyoko[1] || kyoko[2] || kyoko[3]) {
cout << "No" << endl;
} else {
cout << "Yes" << endl;
}
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment