#include <stdio.h>
#include <string.h>
int tailored_strcmp(const char *a, const char *b) {
static char baseorder[] = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
if (*a && *b) {
//both strings have at least 1 character
char *pa
= strchr(baseorder
, *a
); if (!pa) return -1;
char *pb
= strchr(baseorder
, *b
); if (!pb) return 1;
if (pa == pb) {
//need to check second character of a and b
char *ppa
= strchr(baseorder
, a
[1]); if (!ppa) return -1;
char *ppb
= strchr(baseorder
, b
[1]); if (!ppb) return 1;
if (ppa < ppb) return -1;
if (ppa > ppb) return 1;
return 0; // ignore anything beyond the 2nd character
} else {
if (pa < pb) return -1;
return 1;
}
} else {
//at least one string is the empty string
if (*a == *b) return 0; // both empty strings
if (*a) return -1; // b empty string, comes before a
return 1; // a empty string
}
}
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+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCB0YWlsb3JlZF9zdHJjbXAoY29uc3QgY2hhciAqYSwgY29uc3QgY2hhciAqYikgewogICAgc3RhdGljIGNoYXIgYmFzZW9yZGVyW10gPSAiQWFCYkNjRGRFZUZmR2dIaElpSmpLa0xsTW1Obk9vUHBRcVJyU3NUdFV1VnZXd1h4WXlaeiI7CiAgICBpZiAoKmEgJiYgKmIpIHsKICAgICAgICAvL2JvdGggc3RyaW5ncyBoYXZlIGF0IGxlYXN0IDEgY2hhcmFjdGVyCiAgICAgICAgY2hhciAqcGEgPSBzdHJjaHIoYmFzZW9yZGVyLCAqYSk7CiAgICAgICAgaWYgKCFwYSkgcmV0dXJuIC0xOwogICAgICAgIGNoYXIgKnBiID0gc3RyY2hyKGJhc2VvcmRlciwgKmIpOwogICAgICAgIGlmICghcGIpIHJldHVybiAxOwogICAgICAgIGlmIChwYSA9PSBwYikgewogICAgICAgICAgICAvL25lZWQgdG8gY2hlY2sgc2Vjb25kIGNoYXJhY3RlciBvZiBhIGFuZCBiCiAgICAgICAgICAgIGNoYXIgKnBwYSA9IHN0cmNocihiYXNlb3JkZXIsIGFbMV0pOwogICAgICAgICAgICBpZiAoIXBwYSkgcmV0dXJuIC0xOwogICAgICAgICAgICBjaGFyICpwcGIgPSBzdHJjaHIoYmFzZW9yZGVyLCBiWzFdKTsKICAgICAgICAgICAgaWYgKCFwcGIpIHJldHVybiAxOwogICAgICAgICAgICBpZiAocHBhIDwgcHBiKSByZXR1cm4gLTE7CiAgICAgICAgICAgIGlmIChwcGEgPiBwcGIpIHJldHVybiAxOwogICAgICAgICAgICByZXR1cm4gMDsgLy8gaWdub3JlIGFueXRoaW5nIGJleW9uZCB0aGUgMm5kIGNoYXJhY3RlcgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChwYSA8IHBiKSByZXR1cm4gLTE7CiAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgLy9hdCBsZWFzdCBvbmUgc3RyaW5nIGlzIHRoZSBlbXB0eSBzdHJpbmcKICAgICAgICBpZiAoKmEgPT0gKmIpIHJldHVybiAwOyAvLyBib3RoIGVtcHR5IHN0cmluZ3MKICAgICAgICBpZiAoKmEpIHJldHVybiAtMTsgICAgICAvLyBiIGVtcHR5IHN0cmluZywgY29tZXMgYmVmb3JlIGEKICAgICAgICByZXR1cm4gMTsgICAgICAgICAgICAgICAvLyBhIGVtcHR5IHN0cmluZwogICAgfQp9CgoKaW50IG1haW4odm9pZCkgewogICAgaW50IGkgPSAwLCBqID0gMCwgY291bnQ7CiAgICBjaGFyIHN0clsyNV1bMjVdLCB0ZW1wWzI1XTsKICAgIHdoaWxlICgxKSB7CiAgICAgICAgZ2V0cyhzdHJbaV0pOwogICAgICAgIGlmIChzdHJbaV1bMF0gPT0gJzAnKSBicmVhazsKICAgICAgICBpKys7CiAgICB9CiAgICBjb3VudCA9IGk7CiAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgIHsKICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IGNvdW50OyBqKyspIHsKICAgICAgICAgICAgaWYgKHRhaWxvcmVkX3N0cmNtcChzdHJbaV0sIHN0cltqXSkgPiAwKSB7CiAgICAgICAgICAgICAgICBzdHJjcHkodGVtcCwgc3RyW2ldKTsKICAgICAgICAgICAgICAgIHN0cmNweShzdHJbaV0sIHN0cltqXSk7CiAgICAgICAgICAgICAgICBzdHJjcHkoc3RyW2pdLCB0ZW1wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlcyAiLCBzdHJbaV0pOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==