【USACO 2018 December Bronze】Mixing Milk題解

題目描述
農業,尤其是生產牛奶,是一個競爭激烈的行業。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

思路:

不是我說,這真是一道道水題(呵呵,當我沒說), 不說廢話了,這道題是一道模擬的例題,算比較經典吧。
模擬的方法是1->2 , 2->3 , 3->1 , 1->2 ……1->2,執行100次。
然後再想想,如何表示x->y呢?
這分了兩種可能,一是x的牛奶量<y的容量-y的牛奶量,那就把x的牛奶,全部倒進y了;否則,就把y倒滿就好。
可以加快一下算法,可以改成循環33次(1->2 , 2->3 , 3->1),最後再模擬1->2。
然後……沒了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章