View Code of Problem 3835

#include <stdio.h>
#include <string.h>

char s1[25],s2[25];

int main() {
    int len1,len2;
    int i,j,k;
    char change;
    while(scanf("%s",s1)!=EOF) {
        scanf("%s",s2);
        len1 = strlen(s1);
        len2 = strlen(s2);
        for(i=0;i<len1-1;i++) {
            for(j=0;j<len1-1-i;j++) {
                if(s1[j]<s1[j+1]) {
                    change = s1[j];
                    s1[j] = s1[j+1];
                    s1[j+1] = change;
                }
            }
        }
        if(len1<len2) {
            printf("%s\n",s1);
        } else {
            i=0;
            while(s1[i]>=s2[i]&&i<len1) {
                if(s1[i]==s2[i]) {
                    i++;
                    continue;
                }
                for(j=i+1;j<len1;j++) {
                    if(s1[j]<=s2[i]) {
                        change = s1[j];
                        for(k=j;k>i;k--) {
                            s1[k] = s1[k-1];
                        }
                        s1[i] = change;
                        break;
                    }
                }
                if(s1[i]==s2[i]) {
                    i++;
                } else {
                    break;
                }
            }
            printf("%s\n",s1);
        }
    }
}

Double click to view unformatted code.


Back to problem 3835