HDU1873(队列应用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873

 

package D0725;

import java.util.*;

public class HDU1873 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n;
		LinkedList<Patient> list1;
		LinkedList<Patient> list2;
		LinkedList<Patient> list3;
		while (sc.hasNext()) {
			n = sc.nextInt();
			list1 = new LinkedList<Patient>();
			list2 = new LinkedList<Patient>();
			list3 = new LinkedList<Patient>();
			int id = 1;
			while (n-- > 0) {
				String str = sc.next();
				// in
				if (str.charAt(0) == 'I') {
					int docid = sc.nextInt();
					int priority = sc.nextInt();
					Patient p = new Patient(id++, docid, priority);
					if (docid == 1) {
						list1.add(p);
						Collections.sort(list1);
					} else if (docid == 2) {
						list2.add(p);
						Collections.sort(list2);
					} else {
						list3.add(p);
						Collections.sort(list3);
					}

				} else {//out
					int docid = sc.nextInt();
					if (docid == 1) {
						if (list1.isEmpty())
							System.out.println("EMPTY");
						else
							System.out.println(list1.poll().id);
					} else if (docid == 2) {
						if (list2.isEmpty())
							System.out.println("EMPTY");
						else
							System.out.println(list2.poll().id);
					} else {
						if (list3.isEmpty())
							System.out.println("EMPTY");
						else
							System.out.println(list3.poll().id);
					}

				}

			}
		}
	}

}

class Patient implements Comparable<Patient> {
	public int docId;
	public int priority;
	public int id;

	public Patient(int id, int docId, int priority) {
		this.id = id;
		this.docId = docId;
		this.priority = priority;
	}

	@Override
	public int compareTo(Patient o) {
		if (this.priority >= o.priority)
			return -1;
		return 1;
	}

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怎么演

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值