您的位置:首页 > 其它

题目1187:最小年龄的3个职工

2014-02-11 22:02 309 查看
import java.io.IOException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.lang.Comparable;
import java.util.PriorityQueue;
import java.lang.Math;

class Worker implements Comparable<Worker>
{
public Worker(int id, String name, int age)
{
this.id = id;
this.name = name;
this.age = age;
}

public int compareTo(Worker other)
{
if (age != other.age) return age - other.age;

if (id != other.id) return id - other.id;

return name.compareTo(other.name);
}
public int id, age;
public String name;
}

class Main
{
public static final boolean DEBUG = false;

public static void main(String[] args) throws IOException
{
Scanner cin;
int n;

if (DEBUG) {
cin = new Scanner(new FileReader("d:\\OJ\\uva_in.txt"));
} else {
cin = new Scanner(new InputStreamReader(System.in));
}

while (cin.hasNext()) {
n = cin.nextInt();
PriorityQueue<Worker> pq = new PriorityQueue<Worker>();
Worker tmp;
String name;
int age, id;

for (int i = 0; i < n; i++) {
id = cin.nextInt();
name = cin.next();
age = cin.nextInt();
tmp = new Worker(id, name, age);
pq.offer(tmp);
}

int min = Math.min(n, 3);
for (int i = 0; i < min; i++) {
tmp = pq.poll();
System.out.println(tmp.id + " " + tmp.name + " " + tmp.age);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: