杭电acm crixalis's equipment 结果是对的但提交后 老是wrong answer 高手帮忙看一下~
#include<iostream>#include<algorithm>usingnamespacestd;structc{inta;intb;}c1[1010];/*...
#include<iostream>
#include<algorithm>
using namespace std;
struct c
{
int a;
int b;
}c1[1010];
/*这个cmp函数很重要.如果希望升序排序,就是"<",降序排列就是">"号,
这样便于直观记忆.如果希望用elem2作为比较标准就把elem1改为elem2,
这样结构体就以elem2为比较标准排序了.*/
bool cmp(c A,c B)
{ return A.b>B.b;}
void main()
{
int v,T,N,j,flag,k,h=0;
cin>>T;
while(h++<T) //输入一个既加1;一进入循环就已加一;h=1,2...
{
for(j=0;j<1010;j++)
{ c1[j].a=0;c1[j].b=0;}
cin>>v>>N;
j=0;
while(j<N)
{
cin>>c1[j].a>>c1[j].b;
j++;
}
sort(c1,c1+N,cmp);
for(k=0;k<N;k++)
{
if(c1[k].b<=v){v=v-c1[k].a;flag=1;}
else {flag=0;break;}
}
if(flag==1) cout<<"YES"<<endl;
else cout<<"No"<<endl;
}
} 展开
#include<algorithm>
using namespace std;
struct c
{
int a;
int b;
}c1[1010];
/*这个cmp函数很重要.如果希望升序排序,就是"<",降序排列就是">"号,
这样便于直观记忆.如果希望用elem2作为比较标准就把elem1改为elem2,
这样结构体就以elem2为比较标准排序了.*/
bool cmp(c A,c B)
{ return A.b>B.b;}
void main()
{
int v,T,N,j,flag,k,h=0;
cin>>T;
while(h++<T) //输入一个既加1;一进入循环就已加一;h=1,2...
{
for(j=0;j<1010;j++)
{ c1[j].a=0;c1[j].b=0;}
cin>>v>>N;
j=0;
while(j<N)
{
cin>>c1[j].a>>c1[j].b;
j++;
}
sort(c1,c1+N,cmp);
for(k=0;k<N;k++)
{
if(c1[k].b<=v){v=v-c1[k].a;flag=1;}
else {flag=0;break;}
}
if(flag==1) cout<<"YES"<<endl;
else cout<<"No"<<endl;
}
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询