1028. List Sorting

来源:互联网 发布:百度免费域名 编辑:程序博客网 时间:2024/06/05 19:39
#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 ;}

0 0
原创粉丝点击