#include <cstdio>
#include <queue>
#include "string.h"
#include <vector>
#include <algorithm>
using namespace std;
int flag = 1 ;
typedef struct D
{
char ID[10] ;
char name[10] ;
int grade ;
bool operator < (const D d)const
{
//ԽСÓÅÏȼ¶Ô½´ó
if( strcmp(ID , d.ID) >0 )
{
return false ;
}
else
{
return true ;
}
}
}D ;
bool cmp1(const D &d1 , const D &d2)
{
if( strcmp(d1.name , d2.name) >0)
{
return false ;
}
else if( strcmp(d1.name , d2.name) == 0 )
{
//ԽСÓÅÏȼ¶Ô½´ó
if( strcmp(d1.ID , d2.ID) >0 )
{
return false ;
}
else
{
return true ;
}
}
else
{
return true ;
}
}
bool cmp2( const D &d1 , const D &d2)
{
if( d1.grade != d2.grade )
{
return d2.grade > d1.grade ;
}
else
{
//ԽСÓÅÏȼ¶Ô½´ó
if( strcmp(d1.ID , d2.ID) >0 )
{
return false ;
}
else
{
return true ;
}
}
}
int main(void)
{
int n , flag ;
vector<D> data ;
int i ;
//freopen("input.txt" , "r" , stdin);
scanf("%d %d" , &n , &flag);
while(n--)
{
D d ;
scanf("%s %s %d" ,d.ID , d.name , &d.grade );
data.push_back(d);
}
if(flag==1)
{
sort(data.begin() , data.end());
}
else if(flag == 2)
{
sort(data.begin() , data.end() , cmp1);
}
else
{
sort(data.begin() , data.end() , cmp2);
}
for( i = 0; i < data.size() ; i++)
{
printf("%s %s %d\n" , data[i].ID , data[i].name , data[i].grade);
}
return 0 ;
}
1028. List Sorting
最新推荐文章于 2023-07-17 19:25:43 发布