D. Mixing Milk
题目描述
有三个桶,给出每个桶的容量和里面装有的牛奶量,然后进行将A中牛奶倒入B,B中牛奶倒入C,C中牛奶倒入A的操作(如果另一个桶满了就不倒了),共100次(倒一次算一次)。求最后每个桶各有多少牛奶。
题目分析
因为倒的次数(100次)与操作类型(3种)都很少,直接循环100次就完事了。
代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int room[4],milk[4];
for(int i=1;i<=3;i++)
scanf("%d%d",&room[i],&milk[i]);
for(int i=1;i<=100;i++){
if(i%3==1){
if(milk[1]+milk[2]<=room[2]){
milk[2]+=milk[1];
milk[1]=0;
}
else{
milk[1]-=room[2]-milk[2];
milk[2]=room[2];
}
}
else if(i%3==2){
if(milk[2]+milk[3]<=room[3]){
milk[3]+=milk[2];
milk[2]=0;
}
else{
milk[2]-=room[3]-milk[3];
milk[3]=room[3];
}
}
else if(i%3==0){
if(milk[3]+milk[1]<=room[1]){
milk[1]+=milk[3];
milk[3]=0;
}
else{
milk[3]-=room[1]-milk[1];
milk[1]=room[1];
}
}
}
for(int i=1;i<=3;i++)
printf("%d\n",milk[i]);
}