#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
if (a[1] == 0) return AbeforeB;
if (b[1] == 0) return AafterB;
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+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmVudW0gLyp1bnRhZ2dlZCovIHsgQWJlZm9yZUIgPSAtMSwgQWVxdWFsc0IgPSAwLCBBYWZ0ZXJCID0gMSB9OwoKaW50IHRhaWxvcmVkX3N0cmNtcChjb25zdCBjaGFyICphLCBjb25zdCBjaGFyICpiKSB7CiAgICBzdGF0aWMgY2hhciBiYXNlb3JkZXJbXSA9ICJBYUJiQ2NEZEVlRmZHZ0hoSWlKaktrTGxNbU5uT29QcFFxUnJTc1R0VXVWdld3WHhZeVp6IjsKICAgIC8vaWYgYSBvciBiIGlzIHRoZSBlbXB0eSBzdHJpbmcKICAgIGlmICgqYSA9PSAwKSByZXR1cm4gQWJlZm9yZUI7CiAgICBpZiAoKmIgPT0gMCkgcmV0dXJuIEFhZnRlckI7CiAgICBpbnQgbGVuYSA9IHN0cmxlbihhKTsKICAgIGludCBsZW5iID0gc3RybGVuKGIpOwogICAgY2hhciAqcGEgPSBzdHJjaHIoYmFzZW9yZGVyLCAqYSk7CiAgICBjaGFyICpwYiA9IHN0cmNocihiYXNlb3JkZXIsICpiKTsKICAgIGlmIChwYSA9PSBOVUxMKSByZXR1cm4gbGVuYSA8IGxlbmIgPyBBYmVmb3JlQiA6IEFhZnRlckI7CiAgICBpZiAocGIgPT0gTlVMTCkgcmV0dXJuIGxlbmEgPCBsZW5iID8gQWJlZm9yZUIgOiBBYWZ0ZXJCOwogICAgaWYgKHBhID09IHBiKSB7CiAgICAJLy9uZWVkIHRvIGNoZWNrIHNlY29uZCBsZXR0ZXIKICAgICAgICBpZiAoYVsxXSA9PSAwKSByZXR1cm4gQWJlZm9yZUI7CiAgICAgICAgaWYgKGJbMV0gPT0gMCkgcmV0dXJuIEFhZnRlckI7CiAgICAgICAgY2hhciAqcHBhID0gc3RyY2hyKGJhc2VvcmRlciwgYVsxXSk7CiAgICAgICAgY2hhciAqcHBiID0gc3RyY2hyKGJhc2VvcmRlciwgYlsxXSk7CiAgICAgICAgaWYgKHBwYSA9PSBOVUxMKSByZXR1cm4gbGVuYSA8IGxlbmIgPyBBYmVmb3JlQiA6IEFhZnRlckI7CiAgICAgICAgaWYgKHBwYiA9PSBOVUxMKSByZXR1cm4gbGVuYSA8IGxlbmIgPyBBYmVmb3JlQiA6IEFhZnRlckI7CiAgICAgICAgaWYgKHBwYSA9PSBwcGIpIHJldHVybiBsZW5hIDwgbGVuYiA/IEFiZWZvcmVCIDogQWFmdGVyQjsKICAgICAgICByZXR1cm4gcHBhIDwgcHBiID8gQWJlZm9yZUIgOiBBYWZ0ZXJCOwogICAgfQogICAgcmV0dXJuIHBhIDwgcGIgPyBBYmVmb3JlQiA6IEFhZnRlckI7Cn0KCgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgaSA9IDAsIGogPSAwLCBjb3VudDsKICAgIGNoYXIgc3RyWzI1XVsyNV0sIHRlbXBbMjVdOwogICAgd2hpbGUgKDEpIHsKICAgICAgICBnZXRzKHN0cltpXSk7CiAgICAgICAgaWYgKHN0cltpXVswXSA9PSAnMCcpIGJyZWFrOwogICAgICAgIGkrKzsKICAgIH0KICAgIGNvdW50ID0gaTsKICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSAgewogICAgICAgIGZvciAoaiA9IGkgKyAxOyBqIDwgY291bnQ7IGorKykgewogICAgICAgICAgICBpZiAodGFpbG9yZWRfc3RyY21wKHN0cltpXSwgc3RyW2pdKSA+IDApIHsKICAgICAgICAgICAgICAgIHN0cmNweSh0ZW1wLCBzdHJbaV0pOwogICAgICAgICAgICAgICAgc3RyY3B5KHN0cltpXSwgc3RyW2pdKTsKICAgICAgICAgICAgICAgIHN0cmNweShzdHJbal0sIHRlbXApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICBwcmludGYoIlslc10gIiwgc3RyW2ldKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=