#include <stdio.h>
#include <string.h>
enum /*untagged*/ { AbeforeB = -1, AequalsB = 0, AafterB = 1 };
int tailored_strcmp(const char *a, const char *b) {
static char baseorder[] = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
//if a or b is the empty string
if (*a == 0) return AbeforeB;
if (*b == 0) return AafterB;
char *pa
= strchr(baseorder
, *a
); char *pb
= strchr(baseorder
, *b
); if (pa == NULL) return lena < lenb ? AbeforeB : AafterB;
if (pb == NULL) return lena < lenb ? AbeforeB : AafterB;
if (pa == pb) {
//need to check second letter
char *ppa
= strchr(baseorder
, a
[1]); char *ppb
= strchr(baseorder
, b
[1]); if (ppa == NULL) return lena < lenb ? AbeforeB : AafterB;
if (ppb == NULL) return lena < lenb ? AbeforeB : AafterB;
if (ppa == ppb) return lena < lenb ? AbeforeB : AafterB;
return ppa < ppb ? AbeforeB : AafterB;
}
return pa < pb ? AbeforeB : AafterB;
}
int main(void) {
int i = 0, j = 0, count;
char str[25][25], temp[25];
while (1) {
if (str[i][0] == '0') break;
i++;
}
count = i;
for (i = 0; i < count; i++) {
for (j = i + 1; j < count; j++) {
if (tailored_strcmp(str[i], str[j]) > 0) {
}
}
}
for (i = 0; i < count; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmVudW0gLyp1bnRhZ2dlZCovIHsgQWJlZm9yZUIgPSAtMSwgQWVxdWFsc0IgPSAwLCBBYWZ0ZXJCID0gMSB9OwoKaW50IHRhaWxvcmVkX3N0cmNtcChjb25zdCBjaGFyICphLCBjb25zdCBjaGFyICpiKSB7CiAgICBzdGF0aWMgY2hhciBiYXNlb3JkZXJbXSA9ICJBYUJiQ2NEZEVlRmZHZ0hoSWlKaktrTGxNbU5uT29QcFFxUnJTc1R0VXVWdld3WHhZeVp6IjsKICAgIC8vaWYgYSBvciBiIGlzIHRoZSBlbXB0eSBzdHJpbmcKICAgIGlmICgqYSA9PSAwKSByZXR1cm4gQWJlZm9yZUI7CiAgICBpZiAoKmIgPT0gMCkgcmV0dXJuIEFhZnRlckI7CiAgICBpbnQgbGVuYSA9IHN0cmxlbihhKTsKICAgIGludCBsZW5iID0gc3RybGVuKGIpOwogICAgY2hhciAqcGEgPSBzdHJjaHIoYmFzZW9yZGVyLCAqYSk7CiAgICBjaGFyICpwYiA9IHN0cmNocihiYXNlb3JkZXIsICpiKTsKICAgIGlmIChwYSA9PSBOVUxMKSByZXR1cm4gbGVuYSA8IGxlbmIgPyBBYmVmb3JlQiA6IEFhZnRlckI7CiAgICBpZiAocGIgPT0gTlVMTCkgcmV0dXJuIGxlbmEgPCBsZW5iID8gQWJlZm9yZUIgOiBBYWZ0ZXJCOwogICAgaWYgKHBhID09IHBiKSB7CiAgICAJLy9uZWVkIHRvIGNoZWNrIHNlY29uZCBsZXR0ZXIKICAgICAgICBjaGFyICpwcGEgPSBzdHJjaHIoYmFzZW9yZGVyLCBhWzFdKTsKICAgICAgICBjaGFyICpwcGIgPSBzdHJjaHIoYmFzZW9yZGVyLCBiWzFdKTsKICAgICAgICBpZiAocHBhID09IE5VTEwpIHJldHVybiBsZW5hIDwgbGVuYiA/IEFiZWZvcmVCIDogQWFmdGVyQjsKICAgICAgICBpZiAocHBiID09IE5VTEwpIHJldHVybiBsZW5hIDwgbGVuYiA/IEFiZWZvcmVCIDogQWFmdGVyQjsKICAgICAgICBpZiAocHBhID09IHBwYikgcmV0dXJuIGxlbmEgPCBsZW5iID8gQWJlZm9yZUIgOiBBYWZ0ZXJCOwogICAgICAgIHJldHVybiBwcGEgPCBwcGIgPyBBYmVmb3JlQiA6IEFhZnRlckI7CiAgICB9CiAgICByZXR1cm4gcGEgPCBwYiA/IEFiZWZvcmVCIDogQWFmdGVyQjsKfQoKCmludCBtYWluKHZvaWQpIHsKICAgIGludCBpID0gMCwgaiA9IDAsIGNvdW50OwogICAgY2hhciBzdHJbMjVdWzI1XSwgdGVtcFsyNV07CiAgICB3aGlsZSAoMSkgewogICAgICAgIGdldHMoc3RyW2ldKTsKICAgICAgICBpZiAoc3RyW2ldWzBdID09ICcwJykgYnJlYWs7CiAgICAgICAgaSsrOwogICAgfQogICAgY291bnQgPSBpOwogICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspICB7CiAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCBjb3VudDsgaisrKSB7CiAgICAgICAgICAgIGlmICh0YWlsb3JlZF9zdHJjbXAoc3RyW2ldLCBzdHJbal0pID4gMCkgewogICAgICAgICAgICAgICAgc3RyY3B5KHRlbXAsIHN0cltpXSk7CiAgICAgICAgICAgICAgICBzdHJjcHkoc3RyW2ldLCBzdHJbal0pOwogICAgICAgICAgICAgICAgc3RyY3B5KHN0cltqXSwgdGVtcCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgIHByaW50ZigiWyVzXSAiLCBzdHJbaV0pOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==