forwhat00 @ 2019-11-15 17:48:04
#include<stdio.h>
int num,sp,ch,hh,ah[5005],asp[5005];
int main(){
void in_to(int x,int y);
float price_of(int x);
int i,ii,j,jj,ij,total=0,to;
scanf("%d %d",&num,&sp);
scanf("%d %d",&ch,&hh);
for(i=0;i<num;i++){
scanf("%d %d",&ah[i],&asp[i]);
if(ah[i]>ch+hh){num--;i--;continue;}
for(ii=0,to=0;ii<i;ii++){
if(price_of(i)>price_of(ii)){to=ii+1;}
}
in_to(i,to);
}
for(i=0;i<num;i++){
sp-=asp[i];
if(sp>=0){
total+=1;
}
}
printf("%d\n",total);
return 0;
}
void in_to(int x,int y){
int th=ah[x],ts=asp[x];
int i,j;
//
for(i=x;i!=y;i=j){
j=i+((y>x)?1:-1);
ah[i]= ah[j];
asp[i]=asp[j];
}
//
/*
for(i=x;i>=y;i--){
ah[i]= ah[i-1];
asp[i]=asp[i-1];
}
*/
ah[y]=th;asp[y]=ts;
}
float price_of(int x){
return asp[x];
if(asp[x]>0)
return ah[x]/asp[x];
else
return 999999;
}
就是上面的代码,直接提交全部RE,但使用注释的for循环代替前面的for循环就可以AC
by 天野_阳菜 @ 2019-11-15 17:55:16
新人求助,降雨量那题,本机正确提交RE
by 天野_阳菜 @ 2019-11-15 17:55:51
@forwhat00 你这个for循环第三个条件是i=j。有问题吧
by 天野_阳菜 @ 2019-11-15 17:56:36
j=i+((y>x)?1:-1);
这个为什么啊
by forwhat00 @ 2019-11-18 20:56:34
@天野_阳菜 当时写的应该是没问题的。不然本机测试会错。。。