(File IO): input:mixmilk.in output:mixmilk.out
时间限制: 1000 ms 空间限制: 262144 KB 具体限制
Goto ProblemSet
题目描述
农业,尤其是生产牛奶,是一个竞争激烈的行业。
F
a
r
m
e
r
J
o
h
n
Farmer John
FarmerJohn发现如果他不在牛奶生产工艺上有所创新,他的乳制品生意可能就会受到重创!
幸运的是,
F
a
r
m
e
r
J
o
h
n
Farmer John
FarmerJohn想出了一个好主意。他的三头获奖的乳牛,
B
e
s
s
i
e
、
E
l
s
i
e
Bessie、Elsie
Bessie、Elsie和
M
i
l
d
r
e
d
Mildred
Mildred,各自产奶的口味有些许不同,他打算混合这三种牛奶调制出完美的口味。
为了混合这三种不同的牛奶,他拿来三个桶,其中分别装有三头奶牛所产的奶。这些桶可能有不同的容积,也可能并没有完全装满。然后他将桶
1
1
1的牛奶倒入桶
2
2
2,然后将桶
2
2
2中的牛奶倒入桶
3
3
3,然后将桶
3
3
3中的牛奶倒入桶
1
1
1,然后再将桶
1
1
1的牛奶倒入桶
2
2
2,如此周期性地操作,共计进行
100
100
100次(所以第
100
100
100次操作会是桶1倒入桶
2
2
2)。当
F
a
r
m
e
r
J
o
h
n
Farmer John
FarmerJohn将桶
a
a
a中的牛奶倒入桶
b
b
b时,他会倒出尽可能多的牛奶,直到桶
a
a
a被倒空或是桶
b
b
b被倒满。
请告诉
F
a
r
m
e
r
J
o
h
n
Farmer John
FarmerJohn当他倒了
100
100
100次之后每个桶里将会有多少牛奶。
输入
输入文件的第一行包含两个空格分隔的整数:第一个桶的容积
c
1
c1
c1,以及第一个桶里的牛奶量
m
1
m1
m1。
c
1
c1
c1和
m
1
m1
m1均为正,并且不超过
1
0
9
10^9
109。第二和第三行类似地包含第二和第三个桶的容积和牛奶量。
输出
输出三行,给出倒了
100
100
100次之后每个桶里的牛奶量。
样例输入
10 3
11 4
12 5
样例输出
0
10
2
数据范围限制
提示
在这个例子中,每倒一次之后每个桶里的牛奶量如下:
初始状态: 3 4 5
- 桶 1 − > 2 1->2 1−>2: 0 7 5
- 桶 2 − > 3 2->3 2−>3: 0 0 12
- 桶 3 − > 1 3->1 3−>1: 10 0 2
- 桶 1 − > 2 1->2 1−>2: 0 10 2
- 桶
2
−
>
3
2->3
2−>3: 0 0 12
(之后最后三个状态循环出现……)
解题思路
·暴力
代码
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int a[5],b[5],x,y,minn;
int main(){
freopen("mixmilk.in","r",stdin);
freopen("mixmilk.out","w",stdout);
for(int i=1;i<=3;i++)
scanf("%d%d",&a[i],&b[i]);
for(int i=1;i<=100;i++)
{
x=(i-1)%3+1;
if(x==3)y=1;
else y=x+1;
minn=min(a[y]-b[y],b[x]);
b[x]-=minn;
b[y]+=minn;
}
printf("%d\n%d\n%d",b[1],b[2],b[3]);
}