POJ-1146

来源:互联网 发布:linux man top 编辑:程序博客网 时间:2024/05/22 01:30
#include <stdio.h>#include <string.h>int cmp(const void *a, const void *b){    return *(char *)a - *(char *)b;}int main(){    char str[55], min;    int i, j, n;    while (scanf("%s", str), strcmp(str, "#")) {          i = strlen(str)-1;          while (--i >= 0) {                min = 127;                for (j = i+1; str[j]; j++) {                    if (str[j] > str[i] && str[j] < min) {                       min = str[j];                       n = j;                    }                }                if (min != 127) {                   str[n] = str[i];                   str[i] = min;                   qsort(&str[i+1], strlen(&str[i+1]), sizeof(char), cmp);                   printf("%s\n", str);                   break;                }          }          if (i == -1)             printf("No Successor\n");    }}