Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

2376贪心算法,不知道为什么会错,请高手帮一下忙看一下。。。谢谢

Posted by lgq1205 at 2009-07-12 01:56:17
#include<cstdio>
#include<algorithm>
using namespace std;
struct K{
	int a,b;
}k[25001];
bool operator <(const K &x,const K &y)
{
	if(x.a<y.a)
		return true;
	return false;
}
int main()
{
	int n,t,i;
	while(scanf("%d%d",&n,&t)!=EOF)
	{
		for(i = 0;i<n;i++)
			scanf("%d%d",&k[i].a,&k[i].b);
		if(k[0].a>1||n<1)
		{
			printf("-1\n");
			return 0;
		}
		sort(k,k+n);
		int x = k[0].b,mm = k[0].b;
		i = 0;
		int num =1;
		bool flag = false;
		while(1)
		{
			for(i = 1;i < n;i++)
				if(k[i].a <= x && mm < k[i].b)	
				{
					mm = k[i].b;
					flag = true;
				}
			if(flag)
			{
				x = mm;
				num++;
			}
			if(!flag)
				break;
			flag = false;
		}
		if(x>=t)
			printf("%d\n",num);
		else printf("-1\n");
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator