(I3
I102
I7
(dp0
Vtwostr.%l
p1
(Vtwostr.cpp
p2
S'#include <iostream>\r\n#include <cstring>\r\n#include <cstdio>\r\n#include <cstdlib>\r\nusing namespace std;\r\n\r\n#define LenMax 3005\r\n\r\nchar a[LenMax],resa[LenMax],b[LenMax],resb[LenMax];\r\nint ans[LenMax];\r\n\r\nbool cmp(char *a,char *b,int len)\r\n{\r\n    for(int i=0;i<len;i++)\r\n    {\r\n        if(a[i]<b[i])\r\n            return 1;\r\n        else if(a[i]>b[i])\r\n            return 0;\r\n    }\r\n    return 0;\r\n}\r\n\r\nvoid subtract(char *a,int len1,char *b,int len2)\r\n{\r\n    int maxlen=max(len1,len2),take=0;\r\n    \r\n    bool fl=0;\r\n    if(len1==len2)fl=cmp(a,b,len1);\r\n    \r\n        \r\n    for(int i=0,j=len1-1;i<j;i++,j--)\r\n        swap(a[i],a[j]);\r\n    for(int i=0,j=len2-1;i<j;i++,j--)\r\n        swap(b[i],b[j]);\r\n        \r\n    if(len1<len2||(len1==len2&&fl==1))\r\n    {\r\n        for(int i=0;i<len2;i++)\r\n            swap(a[i],b[i]);\r\n        printf("-");\r\n    }\r\n    \r\n    for(int i=0;i<maxlen;i++)\r\n    {\r\n        int tmp=(a[i]-\'0\')-(b[i]-\'0\')-take;\r\n        if(tmp>=0)\r\n        {\r\n            ans[i]=tmp;\r\n            take=0;\r\n        }\r\n        else\r\n        {\r\n            ans[i]=tmp+10;\r\n            take=1;\r\n        }\r\n    }\r\n    \r\n    int p;\r\n    bool izv=0;\r\n    for(p=maxlen-1;ans[p]==0;p--);\r\n    for(int i=p;i>=0;i--)\r\n    {\r\n        printf("%d",ans[i]);\r\n        izv=1;\r\n    }\r\n    if(izv==0)printf("0");\r\n    printf("\\n");\r\n}\r\n\r\nint main()\r\n{\r\n    scanf("%s%s",a,b);\r\n    \r\n    int sza=strlen(a),szb=strlen(b);\r\n    int maxdig=-1,stind=-1;\r\n    \r\n    for(int i=sza;i<LenMax;i++)\r\n        resa[i]=\'0\';\r\n    for(int i=szb;i<LenMax;i++)\r\n        resb[i]=\'0\';\r\n    \r\n    for(int i=0;i<sza;i++)\r\n    {\r\n        if(a[i]-\'0\'>maxdig)\r\n        {\r\n            maxdig=a[i]-\'0\';\r\n            stind=i;\r\n        }\r\n        else if(a[i]-\'0\'==maxdig)\r\n        {\r\n            bool broken=0;\r\n            for(int j=stind+1,k=i+1,ind=0;ind<sza;j++,k++,k%=sza,j%=sza,ind++)\r\n            {\r\n                if(a[j]>a[k])\r\n                {\r\n                    broken=1;\r\n                    break;\r\n                }\r\n                \r\n            }\r\n            if(broken==0)stind=i;\r\n        }\r\n    }\r\n    \r\n    for(int i=stind,ind=0;ind<sza;ind++,i++,i%=sza)\r\n        resa[ind]=a[i];\r\n    \r\n    int mindig=10;\r\n    stind=-1;\r\n        \r\n    for(int i=0;i<szb;i++)\r\n    {\r\n        if(b[i]==\'0\')continue;\r\n        if(b[i]-\'0\'<mindig)\r\n        {\r\n            mindig=b[i]-\'0\';\r\n            stind=i;\r\n        }\r\n        else if(b[i]-\'0\'==mindig)\r\n        {\r\n            bool broken=0;\r\n            for(int j=stind+1,k=i+1,ind=0;ind<szb;j++,k++,k%=szb,j%=szb,ind++)\r\n                if(b[j]<b[k])\r\n                {\r\n                    broken=1;\r\n                    break;\r\n                }\r\n            if(broken==0)stind=i;\r\n        }\r\n    }\r\n    \r\n    for(int i=stind,ind=0;ind<szb;ind++,i++,i%=szb)\r\n        resb[ind]=b[i];\r\n        \r\n        \r\n    subtract(resa,sza,resb,szb);\r\n    \r\n    return 0;\r\n}\r\n/**\r\n5235231\r\n1321325\r\n*/'
p3
tp4
stp5
.