您的位置:首页 > 其它

(2019 GDUT Rating Contest #I)H. Mixing Milk

2019-03-16 01:00 218 查看

传送门

题目大意:

农夫有3桶牛奶,给出每个桶的容量,将桶1的牛奶倒入桶2,再将桶2的牛奶倒入桶3,再将桶3的牛奶倒入桶1,然后这样倒100次,问100次后各个桶有多少牛奶?

题目分析:

真的水题,只是代码量有点长。我们先写出1一>2,2一>3,3一>1的过程,再循环33次,最后再copy 1一>2 的过程,就可以得出答案了。

代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
typedef pair <int,int> P;
int main(){
P cow[4];
for(int i=1;i<=3;i++){
cin>>cow[i].first>>cow[i].second;
}
for(int i=1;i<=33;i++){
if(cow[2].second+cow[1].second<=cow[2].first){
cow[2].second=cow[2].second+cow[1].second;
cow[1].second=0;
}
else{
cow[1].second=cow[2].second+cow[1].second-cow[2].first;
cow[2].second=cow[2].first;
}
if(cow[3].second+cow[2].second<=
4000
cow[3].first){
cow[3].second=cow[3].second+cow[2].second;
cow[2].second=0;
}
else{
cow[2].second=cow[3].second+cow[2].second-cow[3].first;
cow[3].second=cow[3].first;
}
if(cow[1].second+cow[3].second<=cow[1].first){
cow[1].second=cow[3].second+cow[1].second;
cow[3].second=0;
}
else{
cow[3].second=cow[3].second+cow[1].second-cow[1].first;
cow[1].second=cow[1].first;

}
}
if(cow[2].second+cow[1].second<=cow[2].first){
cow[2].second=cow[2].second+cow[1].second;
cow[1].second=0;
}
else{
cow[1].second=cow[2].second+cow[1].second-cow[2].first;
cow[2].second=cow[2].first;
}
printf("%d\n%d\n%d\n",cow[1].second,cow[2].second,cow[3].second);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: