求这道题的解法 c++

2025-04-01 12:50:17
推荐回答(5个)
回答1:

int n;
milk[n]={};
buy[n]={};
cin>>n;
for(int i=0;icin>>milk[i]>>buy[i];
}//输入完毕
int sold=0,left=0;
for(int i=0;iint j=max(0,i-2);
while(buy[i]>=0){
if(milk[j]==0){
j++;
if(j>i)break;
}
else{
buy[i]--;
milk[j]--;
sold++;
}
}
}
//统计剩下的
for(int i=0;ileft+=milk[i];
}
cout<//没编译过,但应该没太大问题

回答2:

ac代码(网站100):

#include

using namespace std;

int main(){

int days;

int d1=0,d2=0,d3=0,d4=0;

int waste = 0;

int stock = 0;

cin>>days;

int in,out;

for(int i=0;i

cin>>in>>out;

d1 += in;

if(d4>= out){

d4 -= out;

stock += out;

}

else if(out<=d3+d4){

d3 = d3+d4-out;

d4= 0;

stock += out;

}else if(out <=d4+d2+d3){

d2 = d3+d2+d4-out;

d3 = 0;

d4 = 0;

stock += out;

}else if(out<=d1+d2+d3+d4){

d1 =d4+d3+d2+d1-out;

d3 = 0;

d2 = 0;

d4 = 0;

stock += out;

}else{

stock  = stock + d1+d2+d3+d4;

d1 = d2 =d3 = d4=0;

}

waste += d4;

d4 = d3;

d3 = d2;

d2 = d1;

d1 = 0;

}

waste = waste+d1+d2+d3+d4;

cout<

return 0;

}

可以看一下我的主站

回答3:

#include

using namespace std;

int main(){

int a,b,x=0,y=0,n,t;

multiset d;

multiset::iterator ms;

cin>>n;

for(int i=1;i<=n;i++){

cin>>a>>b;

    for(int j=1;j<=a;j++) d.insert(i);

for(int j=1;j<=b;j++)

if(d.size()>0) ms=d.begin(),d.erase(ms),x++;

if(i>3) y+=d.count(i-3),d.erase(i-3);

}

cout<

return 0;

}


编译过,网站通过

回答4:

#include
using namespace std;
int main(){
int days;
int d1=0,d2=0,d3=0,d4=0;
int waste = 0;
int stock = 0;
cin>>days;
int in,out;
for(int i=0;icin>>in>>out;
d1 += in;
if(d4>= out){
d4 -= out;
stock += out;
}
else if(out<=d3+d4){
d3 = d3+d4-out;
d4= 0;
stock += out;
}else if(out <=d4+d2+d3){
d2 = d3+d2+d4-out;
d3 = 0;
d4 = 0;
stock += out;
}else if(out<=d1+d2+d3+d4){
d1 =d4+d3+d2+d1-out;
d3 = 0;
d2 = 0;
d4 = 0;
stock += out;
}else{
stock = stock + d1+d2+d3+d4;
d1 = d2 =d3 = d4=0;
}
waste += d4;
d4 = d3;
d3 = d2;
d2 = d1;
d1 = 0;
}
waste = waste+d1+d2+d3+d4;
cout<return 0;
}

回答5:

我仔细的看了四遍,愣是没完全看懂。。