#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <stack>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define showtime fprintf(stderr,"time = %.15f\n",clock() / (double)CLOCKS_PER_SEC)
#define lld %I64d
#define REP(i,k,n) for(int i=k;i<n;i++)
#define REPP(i,k,n) for(int i=k;i<=n;i++)
#define scan(d) scanf("%d",&d)
#define scanl(d) scanf("%I64d",&d)
#define scann(n,m) scanf("%d%d",&n,&m)
#define scannl(n,m) scanf("%I64d%I64d",&n,&m)
#define mst(a,k) memset(a,k,sizeof(a))
#define LL long long
#define N 200001
#define MN 300005
#define mod 1000000007
struct edge{
char name[12];
char score[1300];
}edge[N];
bool cmp(struct edge &A,struct edge &B){
int i=0;bool flag=false;
while(A.score[i]!='\0'&&B.score[i]!='\0'){
if(A.score[i]!=B.score[i]) { flag=true;return A.score[i]>B.score[i];}
i++;
}
if(!flag) {
if(A.score[i]!='\0'){
while(A.score[i]!='\0'){
if(A.score[i++]!='0') return 1;
}
}
else {
while(B.score[i]!='\0'){
if(B.score[i++]!='0') return 0;
}
}
}
return strcmp(A.name,B.name)>0?0:1;
}
int main(){
int n;
//std::ios::sync_with_stdio(false);
while(~scanf("%d",&n)){
char c=getchar();//清除掉回车
for(int i=0;i<n;i++){
//char c;int j=0,k=0;bool flag=false;
cin>>edge[i].name;
cin>>edge[i].score;
/*
while(~scanf("%c",&c)){
if(c==' ') { flag=true;continue;}
if(c!=' '&&!flag) cin<<edge[i].name[j++]=c;
else edge[i].score[k++]=c;
}
edge[i].name[j]='\0';
edge[i].score[k]='\0';*/
}
sort(edge,edge+n,cmp);
for(int i=0;i<n;i++){
printf("%s",edge[i].name);
printf(" ");
printf("%s",edge[i].score);
printf("\n");
}
}
return 0;
}
B
最新推荐文章于 2024-06-10 09:00:00 发布