传送门Codeforces Round #250 (Div. 2) A - The Child and Homework
第一次做完之后交上去,过了例子。顺手就锁定了。。。然后一个小时之后就被HACK了
一開始依据题目的条件推断,假设有一个符合就输出,然后进行下一组。
可是假设同一时候满足两个条件,是应该输出C的。
哎。。
对四个句子长度进行排序。分别比較第一个和第二个&第三个和第四个,假设都满足条件输出C。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int cmp(const void *_a, const void *_b) { char *a = (char *)_a; char *b = (char *)_b; return strlen(a) - 2 - (strlen(b) - 2); } int main() { //freopen("input.txt", "r", stdin); char str[5][200]; bool flag1, flag2; while (gets(str[0])) { flag1 = flag2 = false; for (int i = 1; i < 4; i++) gets(str[i]); qsort(str, 4, sizeof(str[0]), cmp); int flen = strlen(str[0]) - 2, slen = strlen(str[1]) - 2, tlen = strlen(str[2]) - 2, llen = strlen(str[3]) - 2; if (2 * flen <= slen) flag1 = true; if (llen >= tlen * 2) flag2 = true; if (!flag1 && !flag2 || (flag1 && flag2)) { printf("C "); continue; } if (flag1) printf("%c ", str[0][0]); if (flag2) printf("%c ", str[3][0]); } return 0; }