Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
74177 陶俊宸 火柴棒 C++ 解答错误 0 0 MS 196 KB 1113 2023-05-20 17:22:20

Tests(0/10):


#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','0','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(){ scanf("%d",&k); 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(" "); 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=true; for(int i=0;i<100;i++){ if(c[k][i]>'0') f=false; if(f) printf("%c",c[k][i]); } return 0; }


测评信息: