拿了 AC (8ms, 380KB) 不是最佳解,在處理 getchar()
的部份自己電腦和 zoj 的結果不同,嘗試了幾次才弄好。
說是 C++ 其實也幾乎都是 C code
cin
讀給 string 也是爆了,還沒想到怎麼處理,就換成 getchar()
土法煉鋼#include <cstdio> #include <cstring> const unsigned MAXSIZE = 100001; char strs[3][MAXSIZE]; void input(int index) { char ch; int len; for (len = 0; true; ++len) { ch = getchar(); if (ch < '0' || '9' < ch) { if (len == 0) { len = -1; continue; } else { strs[index][len] = '\0'; break; } } strs[index][len] = ch; } } bool lessThan(char * str1, char * str2) { unsigned len1 = strlen(str1), len2 = strlen(str2); if (len1 == len2) { return strcmp(str1, str2) < 0; } else { return len1 < len2; } } int main() { int test; while (scanf("%d\n", &test) != EOF) { while (test--) { input(0); input(1); input(2); if (lessThan(strs[0], strs[1])) { if (lessThan(strs[2], strs[1])) puts(strs[1]); else puts(strs[2]); } else { if (lessThan(strs[2], strs[0])) puts(strs[0]); else puts(strs[2]); } } } return 0; }