View Code of Problem 6

#include<stdio.h>
#include<algorithm>
using namespace std;
struct zuobiao
{
	float start;
	float end;
}a[100];
bool cmp(zuobiao a,zuobiao b)
{
	return a.start<b.start;
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T>0)
	{
		int n;
		scanf("%d",&n);
		int i;
		float x,y;
		int flag=1;
		for(i=0;i<n;i++)
		{
			scanf("%f%f",&x,&y);
			a[i].start=x>y?y:x;
			a[i].end=x<=y?y:x;
		}
		sort(a,a+n,cmp);
		float dis=a[n-1].end/n;
		for(i=0;i<n;i++)
		{
			if(a[i].end-a[i].start>dis) {flag=0;break;}
		}
		for(i=0;i<n;i++)
		{
			if((int)(a[i].end/dis)!=(int)(a[i].start/dis+(a[i].end-a[i].start)/dis)) {flag=0;break;}
			if(i!=0&&a[i].start<a[i-1].end) {flag=0;break;}
		}
		if(flag) printf("YES\n");
		else printf("NO\n");
		T--;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 6