Result: Accepted
Time: 941ms
Memory: 12808kB
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1e6+10;
struct SS{
char s[7];
int x;
}a[maxn];
bool cmp(const SS &a,const SS &b){
if(a.x!=b.x)return a.x<b.x;
if(strcmp(a.s,b.s)<0)return 1;
return 0;
}
int main(){
for(int i=0;i<6;i++)
a[0].s[i]='0';
for(int i=1;i<10;i++){
for(int j=0;j<5;j++)
a[i].s[j]='0';
a[i].s[5]=(i+'0');
}
for(int i=10;i<100;i++){
for(int j=0;j<4;j++)
a[i].s[j]='0';
int temp=i;
for(int j=5;j>=4;j--){
a[i].s[j]=((temp%10)+'0');
temp/=10;
}
}
for(int i=100;i<1000;i++){
for(int j=0;j<3;j++)
a[i].s[j]='0';
int temp=i;
for(int j=5;j>=3;j--){
a[i].s[j]=((temp%10)+'0');
temp/=10;
}
}
for(int i=1000;i<10000;i++){
for(int j=0;j<2;j++)
a[i].s[j]='0';
int temp=i;
for(int j=5;j>=2;j--){
a[i].s[j]=((temp%10)+'0');
temp/=10;
}
}
for(int i=10000;i<100000;i++){
for(int j=0;j<1;j++)
a[i].s[j]='0';
int temp=i;
for(int j=5;j>=1;j--){
a[i].s[j]=((temp%10)+'0');
temp/=10;
}
}
for(int i=100000;i<1000000;i++){
int temp=i;
for(int j=5;j>=0;j--){
a[i].s[j]=((temp%10)+'0');
temp/=10;
}
}
for(int i=0;i<1000000;i++){
for(int j=0;j<6;j++)
a[i].x+=a[i].s[j]-'0';
}
sort(a,a+1000000,cmp);
for(int i=0;i<1000000;i++)
printf("%s\n",a[i].s);
}