2009年11月21日 星期六

TIOJ 1585 Strange Sorting [sort]

poao899    1100K    46MS    G++     0.69K     2009-11-18 19:34:59                         .


排序大賽(誤)的最後一題


當然還是排序XD

//**********************

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define abs(a) (a>0?a:-a)
struct String{
char s[1100];
int len;
bool operator<(const String &b)const{
int min=len<b.len?len:b.len;
for(int i=0;i<min;i++){
if(s[i]!=b.s[i]){
int ra=-abs((s[i]-'a'-13));
int rb=-abs((b.s[i]-'a'-13));
return ra==rb?s[i]>b.s[i]:ra<rb;
}
}
if(len>b.len)return 0;
else return 1;
}
}S[1100];
int n;
main(){
//for(int i='a';i<='z';i++)
// printf("%c:%d\n",i,-abs((i-'a'-13)));
while(~scanf("%d",&n)){
getchar();
for(int i=0;i<n;i++){
gets(S[i].s);
S[i].len=strlen(S[i].s);
}
std::sort(S,S+n);
for(int i=0;i<n;i++)
puts(S[i].s);
}
}


沒有留言:

張貼留言