码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 3293

时间:2016-03-04 16:21:28      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

注意按字典序的时候比较所有字母。

#include<iostream>
#include<string>
#include<string.h>
#include<stdio.h>
#include<math.h>
#include<queue>
#include<algorithm>
using namespace std;
struct node{
    char name[22];
    char origin[22] ;
    char level [22];
    int lev;
}tt[510];

int cmp(node a,node b){
    if(strcmp(a.origin,b.origin)==0){
        if(strcmp(a.level,b.level)==0){
          int len=max(strlen(a.name),strlen(b.name));
          int i=0;
          while(i<len){
            if(a.name[i]==b.name[i]){
                i++;
            }else{
                return a.name[i] < b.name[i];
            }
          }

        }else{
            return  a.lev  > b.lev;
        }
    }else{
        int len=max(strlen(a.origin),strlen(b.origin));
        int i=0;
        while(i<len){
                if(a.origin[i] == b.origin[i]){
                    i++;
                }
        else  { return a.origin[i] < b.origin[i];}
        }
    }
}
int main(){
    int n,num=0;

    while(cin>>n){
            num++;
        for(int i=0;i<n;i++){
            cin>>tt[i].name>>tt[i].origin>>tt[i].level ;
            if(tt[i].level[0]==w){
                tt[i].lev=3;
            }else if(tt[i].level[0]==g){
                tt[i].lev=2;
            }else{
                tt[i].lev=1;
            }
        }
        string cc;
        sort(tt,tt+n,cmp);
        cout<<"Case "<<num<<endl;
        for(int i=0;i<n;i++){
            if(cc!=tt[i].origin){
                cout<<tt[i].origin<<":"<<endl;
                cc=tt[i].origin;
            }
            cout<<"          "<<tt[i].name<<" "<<tt[i].level<<endl;
        }
            }


    return 0;
}

 

HDU 3293

标签:

原文地址:http://www.cnblogs.com/wintersong/p/5242180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!