记录编号 |
33180 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Nov07] 奶牛探险 |
最终得分 |
100 |
用户昵称 |
hello! |
是否通过 |
通过 |
代码语言 |
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;
}