#include <stdio.h>
#include <string.h>
char* bestdigs[10] = {"80.","9874310.","82.","983.","984.","9865.","86.","98730.","8.","98."};
char best_dig(char a, char b) {
int i = 0;
char *digs = bestdigs[a-48];
while (digs[i] != '.') {
if (digs[i] <= b) return digs[i];
i++;
}
return '.';
}
int main(void) {
int t = 0;
while (t--) {
char s[9], m[9];
int mymax = 0;
int i;
// printf("\n\n\ns,m: %s,%s\n\n",&s,&m);
for (i = 0; i <= ml-sl; i++) {
int j;
char ans[9] = "--------";
for (j = 0; j < i; j++) {
ans[j] = m[j];
}
for (j = 0; j < sl; j++) {
ans[j+i] = best_dig(s[j],m[j+i]);
// printf("a,s,m,i,j: '%s',%c,%c,%d,%d\n",ans,s[j],m[j+i],i,j);
if (ans[j+i]!=m[j+i]) {break;}
}
if (j < sl) {
while (ans[j+i]=='.') {
// printf("1: a,i,j: '%s', %d,%d\n",ans,i,j);
j--;
if (j < 0) {
if (i == 0) {j = sl; break;}
while (ans[j+i] == '0') {j--;}
ans[j+i]--;
j++;
while (j<0) {ans[j+i] = '9'; j++;}
j--;
// printf("2: a,i,j: '%s', %d,%d\n",ans,i,j);
break;
}
ans[j+i] = best_dig(s[j],m[j+i]-1);
}
j++;
// printf("3: a,i,j: '%s', %d,%d\n",ans,i,j);
while (i+j < ml) {
ans[j+i] = 0;
switch(s[j]){
case '0':
case '2':
case '6':
case '8':
ans[j+i] -= 1;
default:
ans[j+i] += '9';
}
// printf("4: a,i,j: '%s', %d,%d\n",ans,i,j);
j++;
}
} else {
while (i+j < ml) {ans[j+i] = m[j+i]; j++;}
}
// printf("5: a,i,j: '%s', %d,%d\n",ans,i,j);
int n = 0;
for (j = -i; i+j < ml; j++) {
n*=10; n+=ans[j+i]-48;
}
// printf("6: a,i,j: '%s', %d,%d,%d\n\n",ans,i,j,n);
if (mymax < n) mymax = n;
}
}
return 0;
}
//707496 10257511 => 10099989
//25 100 => 89
//77 100 => 100
//0 100 => 100
//8 13 => 8
//8 24 => 18
//0 0 => 0
//19 38 => 38
//89375 9247529 => 9189999
//804276 2857282 => 2809898
//0 20130120 => 20130120
//3284709 20130120 => 19889989
//1 6 => 4
//274 4883530 => 4883499
//5 268343 => 268343
//2 558870 => 558870
//10381 16146 => 10989
//0 6 => 0
//0 9 => 8
//2 200543 => 200543
//4987565 14398964 => 9989989
//1042216 1815366 => 1098898
//7347946 12524098 => 10999998
//2926618 18735670 => 12988898
// 24 707496 10257511 25 100 77 100 0 100 8 13 8 24 0 0 19 38 89375 9247529 804276 2857282 0 20130120 3284709 20130120 1 6 274 4883530 5 268343 2 558870 10381 16146 0 6 0 9 2 200543 4987565 14398964 1042216 1815366 7347946 12524098 2926618 18735670
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmNoYXIqIGJlc3RkaWdzWzEwXSA9IHsiODAuIiwiOTg3NDMxMC4iLCI4Mi4iLCI5ODMuIiwiOTg0LiIsIjk4NjUuIiwiODYuIiwiOTg3MzAuIiwiOC4iLCI5OC4ifTsKCmNoYXIgYmVzdF9kaWcoY2hhciBhLCBjaGFyIGIpIHsKICAgIGludCBpID0gMDsKICAgIGNoYXIgKmRpZ3MgPSBiZXN0ZGlnc1thLTQ4XTsKICAgIHdoaWxlIChkaWdzW2ldICE9ICcuJykgewogICAgICAgIGlmIChkaWdzW2ldIDw9IGIpIHJldHVybiBkaWdzW2ldOwogICAgICAgIGkrKzsKICAgIH0KICAgIHJldHVybiAnLic7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIGludCB0ID0gMDsKICAgIHNjYW5mKCIlZCIsJnQpOwogICAgd2hpbGUgKHQtLSkgewogICAgICAgICAgICAKICAgICAgICBjaGFyIHNbOV0sIG1bOV07CiAgICAgICAgc2NhbmYoIiVzICVzIiwmcywmbSk7CiAgICAgICAgaW50IG15bWF4ID0gMDsKICAgICAgICBpbnQgc2wgPSBzdHJsZW4ocyk7CiAgICAgICAgaW50IG1sID0gc3RybGVuKG0pOwogICAgICAgIGludCBpOwogICAgICAgICAgICAKLy8gICAgICAgIHByaW50ZigiXG5cblxucyxtOiAlcywlc1xuXG4iLCZzLCZtKTsKICAgICAgICAKICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IG1sLXNsOyBpKyspIHsKICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIGNoYXIgYW5zWzldID0gIi0tLS0tLS0tIjsKICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGk7IGorKykgewogICAgICAgICAgICAgICAgYW5zW2pdID0gbVtqXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgc2w7IGorKykgewogICAgICAgICAgICAgICAgYW5zW2oraV0gPSBiZXN0X2RpZyhzW2pdLG1baitpXSk7CgovLyAgICAgICAgICAgICAgICBwcmludGYoImEscyxtLGksajogJyVzJywlYywlYywlZCwlZFxuIixhbnMsc1tqXSxtW2oraV0saSxqKTsKCiAgICAgICAgICAgICAgICBpZiAoYW5zW2oraV0hPW1baitpXSkge2JyZWFrO30KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaiA8IHNsKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoYW5zW2oraV09PScuJykgewovLyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIxOiAgYSxpLGo6ICclcycsICAgICVkLCVkXG4iLGFucyxpLGopOwogICAgICAgICAgICAgICAgICAgIGotLTsKICAgICAgICAgICAgICAgICAgICBpZiAoaiA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkge2ogPSBzbDsgYnJlYWs7fQogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYW5zW2oraV0gPT0gJzAnKSB7ai0tO30KICAgICAgICAgICAgICAgICAgICAgICAgYW5zW2oraV0tLTsKICAgICAgICAgICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoajwwKSB7YW5zW2oraV0gPSAnOSc7IGorKzt9CiAgICAgICAgICAgICAgICAgICAgICAgIGotLTsKLy8gICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIjI6ICBhLGksajogJyVzJywgICAgJWQsJWRcbiIsYW5zLGksaik7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0gIAogICAgICAgICAgICAgICAgICAgIGFuc1tqK2ldID0gYmVzdF9kaWcoc1tqXSxtW2oraV0tMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBqKys7Ci8vICAgICAgICAgICAgICAgIHByaW50ZigiMzogIGEsaSxqOiAnJXMnLCAgICVkLCVkXG4iLGFucyxpLGopOwogICAgICAgICAgICAgICAgd2hpbGUgKGkraiA8IG1sKSB7CiAgICAgICAgICAgICAgICAgICAgYW5zW2oraV0gPSAwOwogICAgICAgICAgICAgICAgICAgIHN3aXRjaChzW2pdKXsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMCc6CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzInOgogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICc2JzoKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnOCc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnNbaitpXSAtPSAxOwogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zW2oraV0gKz0gJzknOwogICAgICAgICAgICAgICAgICAgIH0KLy8gICAgICAgICAgICAgICAgcHJpbnRmKCI0OiAgYSxpLGo6ICclcycsICAgICVkLCVkXG4iLGFucyxpLGopOwogICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgd2hpbGUgKGkraiA8IG1sKSB7YW5zW2oraV0gPSBtW2oraV07IGorKzt9CiAgICAgICAgICAgIH0KLy8gICAgICAgICAgICBwcmludGYoIjU6ICBhLGksajogJyVzJywgICAgJWQsJWRcbiIsYW5zLGksaik7CiAgICAgICAgICAgIGludCBuID0gMDsKICAgICAgICAgICAgZm9yIChqID0gLWk7IGkraiA8IG1sOyBqKyspIHsKICAgICAgICAgICAgICAgIG4qPTEwOyBuKz1hbnNbaitpXS00ODsKICAgICAgICAgICAgfQovLyAgICAgICAgICAgIHByaW50ZigiNjogIGEsaSxqOiAnJXMnLCAgICAlZCwlZCwlZFxuXG4iLGFucyxpLGosbik7CiAgICAgICAgICAgIGlmIChteW1heCA8IG4pIG15bWF4ID0gbjsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCIlZFxuIixteW1heCk7CiAgICAgICAgCiAgICB9CiAgICByZXR1cm4gMDsKfSAgICAgICAgICAgICAgIAovLzcwNzQ5NiAxMDI1NzUxMSAgID0+IDEwMDk5OTg5Ci8vMjUgMTAwICAgICAgICAgICAgPT4gODkKLy83NyAxMDAgICAgICAgICAgICA9PiAxMDAKLy8wIDEwMCAgICAgICAgICAgICA9PiAxMDAKLy84IDEzICAgICAgICAgICAgICA9PiA4Ci8vOCAyNCAgICAgICAgICAgICAgPT4gMTgKLy8wIDAgICAgICAgICAgICAgICA9PiAwCi8vMTkgMzggICAgICAgICAgICAgPT4gMzgKLy84OTM3NSA5MjQ3NTI5ICAgICA9PiA5MTg5OTk5Ci8vODA0Mjc2IDI4NTcyODIgICAgPT4gMjgwOTg5OAovLzAgMjAxMzAxMjAgICAgICAgID0+IDIwMTMwMTIwCi8vMzI4NDcwOSAyMDEzMDEyMCAgPT4gMTk4ODk5ODkKLy8xIDYgICAgICAgICAgICAgICA9PiA0Ci8vMjc0IDQ4ODM1MzAgICAgICAgPT4gNDg4MzQ5OQovLzUgMjY4MzQzICAgICAgICAgID0+IDI2ODM0MwovLzIgNTU4ODcwICAgICAgICAgID0+IDU1ODg3MAovLzEwMzgxIDE2MTQ2ICAgICAgID0+IDEwOTg5Ci8vMCA2ICAgICAgICAgICAgICAgPT4gMAovLzAgOSAgICAgICAgICAgICAgID0+IDgKLy8yIDIwMDU0MyAgICAgICAgICA9PiAyMDA1NDMKLy80OTg3NTY1IDE0Mzk4OTY0ICA9PiA5OTg5OTg5Ci8vMTA0MjIxNiAxODE1MzY2ICAgPT4gMTA5ODg5OAovLzczNDc5NDYgMTI1MjQwOTggID0+IDEwOTk5OTk4Ci8vMjkyNjYxOCAxODczNTY3MCAgPT4gMTI5ODg4OTgKCi8vIDI0IDcwNzQ5NiAxMDI1NzUxMSAyNSAxMDAgNzcgMTAwIDAgMTAwIDggMTMgOCAyNCAwIDAgMTkgMzggODkzNzUgOTI0NzUyOSA4MDQyNzYgMjg1NzI4MiAwIDIwMTMwMTIwIDMyODQ3MDkgMjAxMzAxMjAgMSA2IDI3NCA0ODgzNTMwIDUgMjY4MzQzIDIgNTU4ODcwIDEwMzgxIDE2MTQ2IDAgNiAwIDkgMiAyMDA1NDMgNDk4NzU2NSAxNDM5ODk2NCAxMDQyMjE2IDE4MTUzNjYgNzM0Nzk0NiAxMjUyNDA5OCAyOTI2NjE4IDE4NzM1Njcw