下沉的船

来源:互联网 发布:淘宝客交易成功后退款 编辑:程序博客网 时间:2024/06/08 13:26

下沉的船

Time Limit: 1000MS Memory Limit: 65536KB

Problem Description

一艘船很不幸的撞上了暗礁,船长组织大家上救生艇,而且船长决定女人(woman)和小孩(child)先上船,然后其次是男人(man,最后是船长(captain)。给出原来的顺序,通过编程得到按船长要求排列后的顺序。

身份优先级: woman = child > man > captain.

注意:如果两者的身份优先级一样,请按原来的序列的顺序决定,原序列中在前面的人,依然在前面(具体请看样例)

Input

 多组数据(少于10组),每一组有一个整数n0<n<100),代表船上有n个人,接下来n行,每行有一个名字和他的身份。名字字符长度小于10。数据保证不存在重名,注意可能存在多名船长

Output

 输出n行,每一行输出一个名字,先上船的名字在前面。

Example Input

6Jack captainAlice womanCharlie manTeddy womanBob childJulia woman

Example Output

AliceTeddyBobJuliaCharlieJack
package com.a;import java.util.*;import java.util.zip.ZipEntry;import javax.swing.plaf.basic.BasicBorders.SplitPaneBorder;public class Main {public static void main(String[] args) {       Scanner input=new Scanner(System.in);       int p=1;       while(p<10){      int n=input.nextInt();     String a[]=new String[101];     String b[]=new String[101];     int c[]=new int[101];     for(int i=0;i<n;i++){          a[i]=input.next();          b[i]=input.next();          if(b[i].compareTo("captain")==0){          c[i]=4;          }          else if(b[i].compareTo("woman")==0||b[i].compareTo("child")==0){          c[i]=1;          }          else if (b[i].compareTo("man")==0){          c[i]=2;          }     }//    for(int i=0;i<n;i++){//     System.out.println(c[i]);//     }     for(int i=0;i<n-1;i++){     for(int j=0;j<n-i-1;j++){     if(c[j]>c[j+1]){     int y=c[j];     c[j]=c[j+1];    c[j+1]=y;     String tString=a[j];     a[j]=a[j+1];     a[j+1]=tString;      }     }    }     for(int i=0;i<n;i++){     System.out.println(a[i]);     }     p++;       } }}


0 0