| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
2376贪心算法,不知道为什么会错,请高手帮一下忙看一下。。。谢谢#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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator