新生赛的加强版
好多才Y
新生赛里面是int内的
这个是高精度的...
关键是之前错写成了bool型...就跪了无数次...
#include<stdio.h>
#include<string.h>
char a[60][5010];
char x[10020],y[10020];
char t[5010];
int cmp(char *a,char *b){
int len=strlen(a),i;
for(i=0;i<len;i++){
// printf("%d:a[]=%c,b[]=%c,a[]-b[]=%c\n",i,a[i],b[i],a[i]-b[i]);
if(a[i]!=b[i])return (int)a[i]-(int)b[i];
// printf("%d ",i);
}
return 0;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF&&n){
int i;
for(i=1;i<=n;i++)scanf("%s",a[i]);
int j;
for(i=1;i<=n;i++)for(j=i+1;j<=n;j++){
sprintf(x,"%s%s",a[i],a[j]);
sprintf(y,"%s%s",a[j],a[i]);
// puts(x);puts(y);
// printf("cmp(%d,%d)=%d\n",i,j,cmp(x,y));
if(cmp(x,y)<0){
strcpy(t,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],t);
}
}
for(i=1;i<=n;i++)printf("%s",a[i]);
printf("\n");
}
return 0;
}
有不少trick
2
09 90
2
1232 123
AC out put
9009
1232123
本文分享了一个关于新生赛加强版的问题解决方案,采用C语言实现字符串的高精度比较。通过自定义比较函数cmp来判断两个字符串连接后的大小,并据此调整字符串顺序,确保最终输出的字符串为最大可能值。
341

被折叠的 条评论
为什么被折叠?



