题目描述
农业,尤其是生产牛奶,是一个竞争激烈的行业。Farmer John 发现如果他不在牛奶生产工艺上有所创新,他的乳制品生意可能就会受到重创!
幸运的是,Farmer John 想出了一个好主意。他的三头获奖的乳牛,Bessie、Elsie 和 Mildred,各自产奶的口味有些许不同,他打算混合这三种牛奶调制出完美的口味。
为了混合这三种不同的牛奶,他拿来三个桶,其中分别装有三头奶牛所产的奶。这些桶可能有不同的容积,也可能并没有完全装满。然后他将桶 1 的牛奶倒入桶 2,然后将桶 2 中的牛奶倒入桶 3,然后将桶 3 中的牛奶倒入桶 1,然后再将桶 1 的牛奶倒入桶 2,如此周期性地操作,共计进行 100 次(所以第 100 次操作会是桶 1 倒入桶 2)。当 Farmer John 将桶 a中的牛奶倒入桶 b 时,他会倒出尽可能多的牛奶,直到桶 a 被倒空或是桶 b 被倒满。
请告诉 Farmer John 当他倒了 100次之后每个桶里将会有多少牛奶。
输入
输入的第一行包含两个空格分隔的整数:三个桶的容积ci,以及三个桶里的牛奶量mi。ci和mi均为正,并且不超过10^9。
输出
输出三行,给出倒了 100次之后每个桶里的牛奶量。
样例输入
10 3 11 4 12 5
样例输出
0 10 2
提示
https://www.luogu.com.cn/problem/P5116
http://www.usaco.org/index.php?page=viewproblem2&cpid=855
这两个平台上的数据更全
代码
#include <bits/stdc++.h>
using namespace std;
int a,pa,b,pb,c,pc;
int main()
{
cin>>a>>pa;
cin>>b>>pb;
cin>>c>>pc;
for(int i=1; i<=100;i++)
{
int t;
if(i%3==1)
{
t=pb+pa-b;
pb=min(b,pb+pa);
pa=max(0,t);
}
if(i%3==2)
{
t=pc+pb-c;
pc=min(c,pc+pb);
pb=max(0,t);
}
if(i%3==0)
{
t=pa+pc-a;
pa=min(a,pa+pc);
pc=max(0,t);
}
}
cout<<pa<<endl<<pb<<endl<<pc;
return 0;
}