View Code of Problem 3928

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
//#include <bits/stdc++.h>

using namespace std;

typedef struct box {
	int max;
	int min;
} box;

bool cmp(box a,box b) {
	if(a.min>b.min) {
		return false;
	} else if(a.min==b.min) {
		if(a.max>b.max) {
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}
int main() {
	box b[6];
	int tempa,tempb;
	while(scanf("%d %d",&tempa,&tempb)!=EOF) {
		getchar();
		if(tempa<tempb) {
			b[0].min=tempa;
			b[0].max=tempb;
		} else {
			b[0].min=tempb;
			b[0].max=tempa;
		}
		for(int i=1; i<6; i++) {
			scanf("%d %d",&tempa,&tempb);
			getchar();
			if(tempa<tempb) {
				b[i].min=tempa;
				b[i].max=tempb;
			} else {
				b[i].min=tempb;
				b[i].max=tempa;
			}
		}
		sort(b,b+6,cmp);
		int flag=0;
		if(b[0].min==b[1].min && b[0].max==b[1].max) {
			flag++;
		}
		if(b[2].min==b[3].min && b[2].max==b[3].max) {
			flag++;
		}
		if(b[4].min==b[5].min && b[5].max==b[5].max) {
			flag++;
		}

//		for(int i=0; i<6; i++) {
//			printf("%d %d\n",b[i].min,b[i].max);
//		}
//      if (flag == 3&&p[4].min==p[0].max&&p[4].max==p[2].max) {
		if(flag==3&& b[0].min==b[2].min && b[0].max==b[4].min&&b[2].max==b[4].max) {
			printf("POSSIBLE\n");
		} else {
			printf("IMPOSSIBLE\n");
		}
	}
}

Double click to view unformatted code.


Back to problem 3928