poj 1828

1155 ワード

この間は水の問題ばかり選んでやった.
#include<iostream>
using namespace std;
typedef struct fun
{
	int x,y;
}rr;
fun a[50005];
int cmp(const void *a,const void *b)
{
	fun *c=(fun *)a;
	fun *d=(fun *)b;
	if(c->x==d->x)
		return c->y-d->y;
	else
		return c->x-d->x;
}
int main()
{
	int n,i;
	while(1)
	{
//		cin>>n;
		scanf("%d",&n);
		if(n==0)
			break; 
		for(i=0; i<n; i++)
		{
			scanf("%d%d",&a[i].x,&a[i].y);
//			cin>>a[i].x>>a[i].y; 
		}
		int sum=1; 
		qsort(a,n,sizeof(fun),cmp);
		int x=a[n-1].x,y=a[n-1].y;
		for(i=n-2; i>=0; i--)
		{
			if(a[i].x==x)
			{
				if(a[i].y==y)
					sum++;
			}
			else
			{
				if(a[i].y>y)
				{
					x=a[i].x;
					y=a[i].y;
					sum++;
				}
			}

		}
		printf("%d
",sum); // cout<<sum<<endl; } return 0; }