传送门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\n");
continue;
}
if (flag1)
printf("%c\n", str[0][0]);
if (flag2)
printf("%c\n", str[3][0]);
}
return 0;
}