记录编号 33180 评测结果 AAAAAAAAAA
题目名称 [USACO Nov07] 奶牛探险 最终得分 100
用户昵称 Gravatarhello! 是否通过 通过
代码语言 C++ 运行时间 0.181 s
提交时间 2011-11-09 17:29:38 内存使用 0.65 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<iomanip>//setiosflags(ios::fixed)<<setprecision()<<
#include<cstdlib>
using namespace std;
struct haha  
{  
    int num1;  
    bool yy;	
}ku[50050];  
int cmp(const void *a,const void *b)  
{  
    struct haha *c=(struct haha *)a;  
    struct haha *d=(struct haha *)b;  
    return c->num1 - d->num1;  
} 
int main()
{
	freopen("explore.in","r",stdin);
	freopen("explore.out","w",stdout);
	int t,n;
	cin>>t>>n;
	for(int i=1;i<=n;i++)
	{
		int a;
		cin>>a;
		if(a<0)
		{
			ku[i].yy=false;
			ku[i].num1=-1*a;
		}
		else
		{
			ku[i].yy=true;
			ku[i].num1=a;
		}
	}
	qsort(ku+1,n,sizeof(ku[0]),cmp);
	int sum;
	if(ku[1].yy==true)
	{
		sum=ku[1].num1;
	}
	else
	{
		sum=-1*ku[1].num1;
	}
    int ans=1;
	if(ku[1].num1>t)
	{
		cout<<0<<endl;
	}
	else
	{
		for(int i=2;(sum<t)&&(i<=n);i++)
	    {
			if(ku[i-1].yy==ku[i].yy)
		    {
			    int temp;
			    temp=ku[i].num1-ku[i-1].num1;
			    sum=sum+temp;
		    }
		    else
		    {
			    int temp;
			    temp=ku[i].num1+ku[i-1].num1;
			    sum=sum+temp;
		    }
		    ans++;
        }
		cout<<ans-1<<endl;
	}
	return 0;
}