算法竞赛入门经典java版程序CH3 uva1587

package ch3.uva1587;

import java.util.*;

//UVa1587
//思路:考虑一对面的数据都是一样的。可以存时将小在前,大在后。放入集合,并排序,先按a,再按b 
//这时就会12,34,56是一对。 并且发现第12组,和34组的a是相同的,而它们的b分别正好是56组的a和b
class Box implements Comparable {
	int a;
	int b;

	@Override
	public int compareTo(Box o) {
		if (this.a < o.a) {
			return -1;
		} else if (this.a > o.a) {
			return 1;
		} else {
			if (this.b < o.b) {
				return -1;
			} else if (this.b > o.b) {
				return 1;
			} else
				return 0;
		}
	}

	public String toString() {
		return a + " " + b;
	}
}

class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		while (cin.hasNext()) {
			ArrayList list = new ArrayList();
			;
			for (int i = 0; i < 6; i++) {
				int a = cin.nextInt();
				int b = cin.nextInt();
				Box box = new Box();
				if (a < b) {
					box.a = a;
					box.b = b;
				} else {
					box.a = b;
					box.b = a;
				}
				list.add(box);
			}
			Collections.sort(list);
//			for (int i = 0; i < list.size(); i++) {
//				System.out.println(list.get(i));
//			}
			// check
			boolean imp = false;
			for (int i = 0; i < list.size(); i=i+2) {
				//System.out.println("i="+i);
				if (!(list.get(i).a == list.get(i+1).a && list.get(i).b == list.get(i+1).b)) {
					System.out.println("IMPOSSIBLE");
					imp = true;
					break;
				}
			}
			if (!imp) {
				if (!(list.get(0).a == list.get(2).a && list.get(0).b == list.get(4).a && list.get(2).b == list.get(4).b)) {
					System.out.println("IMPOSSIBLE");
				} else {
					System.out.println("POSSIBLE");
				}
			}
			// result
		}
	}
}

你可能感兴趣的:(算法竞赛入门经典java版程序)