Mixing Milk 题解
2023-08-19 20:49:57
发布于:广东
3阅读
0回复
0点赞
题目翻译
混合牛奶
题目描述
农业,尤其是生产牛奶,是一个竞争激烈的行业。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次之后每个桶里将会有多少牛奶。
输入
输入文件的第一行包含两个空格分隔的整数:第一个桶的容积c1,以及第一个桶里的牛奶量m1。c1和m1均为正,并且不超过10^9。第二和第三行类似地包含第二和第三个桶的容积和牛奶量。
输出
输出三行,给出倒了100次之后每个桶里的牛奶量。
输入输出案例
输入
10 3
11 4
12 5
输出
0
10
2
AC代码
#include <bits/stdc++.h>
using namespace std;
int N=3;
int c[4],m[4];
void pour( ){
int tmp=min(m[1],c[2]-m[2]);
m[1]=m[1]-tmp;
m[2]=m[2]+tmp;
// cout<<m[1]<<endl;
// cout<<m[2]<<endl;
// cout<<endl;
tmp=min(m[2],c[3]-m[3]);
m[2]=m[2]-tmp;
m[3]=m[3]+tmp;
// cout<<m[2]<<endl;
// cout<<m[3]<<endl;
// cout<<endl;
tmp=min(m[3],c[1]-m[1]);
m[3]=m[3]-tmp;
m[1]=m[1]+tmp;
//
// cout<<m[3]<<endl;
// cout<<m[1]<<endl;
// cout<<endl;
//
}
int main() {
for (int i=1;i<=3;i++){
cin>>c[i]>>m[i];
}
for (int i=1;i<=33;i++)pour();
int tmp=min(m[1],c[2]-m[2]);
m[1]=m[1]-tmp;
m[2]=m[2]+tmp;
cout<<m[1]<<endl<<m[2]<<endl<<m[3];
return 0;
}
这里空空如也
有帮助,赞一个