题解 P5116 【[USACO18DEC]Mixing Milk】
按照题意纯模拟即可。
这一题是
具体思路见代码:
#include<bits/stdc++.h>
using namespace std;
int c[4],m[4];//c数组是容量,m数组是桶里牛奶的数量
int main()
{
for(int x=1;x<=3;x++)cin>>c[x]>>m[x];//输入
for(int x=1;x<=100;x++){//循环模拟100次
int f=(x-1)%3+1,s;//f是要将牛奶倒出的桶,s则是倒入的桶
if(f==3)s=1;//桶3要倒给桶1
else s=f+1;//否则就倒给下一个桶
int mi=min(c[s]-m[s],m[f]);//mi是倒牛奶的数量,取桶s剩余容积和桶f牛奶数量的最小值
m[f]-=mi;//桶f倒出
m[s]+=mi;//桶s倒入
}
cout<<m[1]<<endl<<m[2]<<endl<<m[3];//输出
return 0;
}