问题描述


#####思路
对每一个堡垒都进行优惠补给,对比补给堡垒数,得出最大值
具体代码如下:
#include<stdio.h>
int main()
{
int N,B,i,j;
long long int p[100000],s[100000];
scanf("%d %d",&N,&B);
int count[1000]={0};
for(i=0;i<N;i++){
scanf("%lld %lld",&p[i],&s[i]);
B-=(p[i]/2+s[i]);
for(j=1;j<N;j++){
if(B>0){
B-=(p[j]+s[j]);
count[i]++;
}
}
}
int max=count[0];
for(i=1;i<N;i++){
if(count[i]>max){
max=count[i];
}
}
printf("%d",max);
return 0;
}
这里把P数组、S数组范围缩小了,否则会出现“运行错误”问题,具体也不知道怎么解决,在线求解