tjut 2889

来源:互联网 发布:淘宝大学官网 编辑:程序博客网 时间:2024/05/17 21:42
#include <algorithm>#include <iostream>#include <cstdlib>#include <cstdio>#include <string>#include <cmath>#include <stack>#include <queue>#include <set>#include <map>using namespace std;char a[20], b[20];__int64 parseInt64(const char * p, int radix){__int64 v = 0;for(size_t i = 0; i < strlen(p); ++i){   v = v * radix + p[i] - '0';}return v;}__int64 getWithoutZeroValue(__int64 rank){memset(a, '1', sizeof(a));__int64 val = 0;for(int idx = 0; ; ++idx){   val = val * 9 + a[idx] - '0';   if(val == rank){    a[idx+1] = 0;    return parseInt64(a, 10);   }   else if(val > rank){    a[idx] = 0;    break;   }}for(size_t i = 0; i < strlen(a); ++i){   for(char j = '2'; j <= '9'; ++j){    a[i] = j;    val = parseInt64(a, 9);    if(val == rank){     return parseInt64(a, 10);    }    if(val > rank){     a[i] = j - 1;     break;    }   }} return 0;}int main(){while(scanf("%s%s", b, a) != EOF){   __int64 rank = parseInt64(b, 9) - parseInt64(a, 9);   printf("%I64d\n", getWithoutZeroValue(rank));}return 0;}

0 0