提交时间:2023-05-20 17:17:33

运行 ID: 74145

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; bool f; char s[101],c[101][101]; int k; const char bn[8]={0,0,'1','7','4','5','9','8'},sn[8]={0,0,'1','7','4','2','6','8'}; bool cmp(char c1[],char c2[]){ int len1=strlen(c1),len2=strlen(c2); if(len1!=len2) return len1>len2; for(int i=0;i<len1;i++) if(c1[i]!=c2[i]) return c1[i]>c2[i]; return false; } int main(){ for(int i=1;i<=k;i++){ for(int j=max(0,i-7);j<i-1;j++){ if(j==1||(strlen(c[j])&&c[j][0]=='0')) continue; memcpy(s,c[j],sizeof c[j]); s[strlen(s)]=sn[i-j]; f=cmp(c[i],s); if(f||!strlen(c[i])) memcpy(c[i],s,sizeof s); } } f=true; for(int i=0;i<100;i++){ if(!c[k][i]) f=false; if(f) printf("%c",c[k][i]); } printf("\n"); for(int i=1;i<=k;i++){ memset(c[i],0,sizeof c[i]); for(int j=max(0,i-7);j<i-1;j++){ memcpy(s,c[j],sizeof c[j]); s[strlen(s)]=bn[i-j]; f=cmp(s,c[i]); if(f) memcpy(c[i],s,sizeof s); } } f=false; for(int i=0;i<100;i++){ if(c[k][i]>'0') f=true; if(f||!i) printf("%c",c[k][i]); } return 0; }