R1_H_Mixing Milk

Mixing Milk

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Farming is competitive business – particularly milk production. Farmer John figures that if he doesn’t innovate in his milk production methods, his dairy business could get creamed! Fortunately, Farmer John has a good idea. His three prize dairy cows Bessie, Elsie, and Mildred each produce milk with a slightly different taste, and he plans to mix these together to get the perfect blend of flavors.

To mix the three different milks, he takes three buckets containing milk from the three cows. The buckets may have different sizes, and may not be completely full. He then pours bucket 11 into bucket 22, then bucket 22 into bucket 33, then bucket 33 into bucket 11, then bucket 11 into bucket 22, and so on in a cyclic fashion, for a total of 100100 pour operations (so the 100100th pour would be from bucket 11 into bucket 22). When Farmer John pours from bucket a into bucket b, he pours as much milk as possible until either bucket a becomes empty or bucket b becomes full.

Please tell Farmer John how much milk will be in each bucket after he finishes all 100100 pours.

Input

The first line of the input file contains two space-separated integers: the capacity c1c1 of the first bucket, and the amount of milk m1m1 in the first bucket. Both c1c1 and m1m1 are positive and at most 11 billion, with c1≤m1c1≤m1. The second and third lines are similar, containing capacities and milk amounts for the second and third buckets.

Output

Please print three lines of output, giving the final amount of milk in each bucket, after 100100 pour operations.

Example

input

Copy

10 3
11 4
12 5

output

Copy

0
10
2

Note

In this example, the milk in each bucket is as follows during the sequence of pours:

Initial State: 3 4 5

\1. Pour 1->2: 0 7 5

\2. Pour 2->3: 0 0 12

\3. Pour 3->1: 10 0 2

\4. Pour 1->2: 0 10 2

\5. Pour 2->3: 0 0 12

(The last three states then repeat in a cycle …)

题目大意

给3个桶,每个桶都有一个容量和一开始的牛奶的数量,然后从桶1倒去桶2,直到倒满桶2(即桶1可能有剩余),然后桶2倒去桶3,桶3倒去桶1,循环往复。问倒了100次以后,各个桶的牛奶的数量。

题目分析

水题……直接模拟就行了。

循环肯定想到取模。先计算出下一个要倒的桶和现在的桶,然后检测下一个桶的剩余容量,如果现在桶的牛奶数大于容量,就把下一个桶牛奶数置满,现在桶的牛奶数减去倒的牛奶数。如果小于容量,则将现在桶的牛奶置零,下一个桶的牛奶数加就行了。

代码

#include <cstdio>
using namespace std;
int c[4], m[4];
int main(int argc, char const *argv[]) {
  for(int i = 1; i <= 3; i++)
    scanf("%d%d", &c[i], &m[i]);

  for(int i = 0; i < 100; i++){
    int a, b;
    a = i % 3 + 1;
    b = (a == 3? 1: a + 1);

    int need = c[b] - m[b];
    if(m[a] >= need){
      m[a] -= need;
      m[b] = c[b];
    }else{
      m[b] += m[a];
      m[a] = 0;
    }
  }
  for(int i = 1; i <= 3; i++)
    printf("%d\n", m[i]);
  return 0;
}

猜你喜欢

转载自blog.csdn.net/IT_w_TI/article/details/88556760
今日推荐