小z最近迷上了一款遊戲――To Be A Farmer,他在遊戲中控制的人物是一個叫FZ的Farmer。FZ身上有G1個金幣、S1個銀幣和B1個銅幣,而他至少須要G2個金幣、S2個銀幣和B2個銅幣。爲了完成這個目標,小z只好控制FZ來到了遊戲中的銀行。銀行有以下規定:
(1)你能夠用1個金幣交換9個銀幣;
(2)你能夠用11個銀幣交換1個金幣;
(3)你能夠用1個銀幣交換9個銅幣;
(4)你能夠用11個銅幣交換1個銀幣;
小z看到這些規定,頓時頭大了,只好求助於你。聰明的你來幫助他解決這樣一個問題:最少須要交換多少次硬幣才能至少擁有G2個金幣、S2個銀幣和B2個銀幣呢?c++
第1行包含三個整數:G一、S1和B1。
第2行包含三個整數:G二、S2和B2。
0 ≤ G一、S一、B一、G二、S二、B2 ≤ 10000000。spa
若是能夠完成任務的話,輸出一個整數表示最少交換次數;不然輸出整數-1。code
10 0 0
0 0 81遊戲
10ci
碼完代碼,提交到OJ,真是:it
代碼在這兒(說得這麼明白,都不想放了)class
#include<bits/stdc++.h> using namespace std; int a1,b1,c1,a2,b2,c2,ans; int main() { cin>>a1>>b1>>c1>>a2>>b2>>c2; if(a1 < a2) { ans+=a2-a1; b1-=(a2-a1)*11; a1=a2; } if(c1 < c2) { ans+=(c2-c1+8)/9; b1-=(c2-c1+8)/9; c2+=(c2-c1+8)/9*9; } if(b1 < b2 && a1 > a2) { if(b1+(a1-a2)*9 < b2) { ans+=(a1-a2); b1+=(a1-a2)*9; a1=a2; } else { ans+=(b2-b1+8)/9; a1-=(b2-b1+8)/9; b1+=(b2-b1+8)/9*9; } } if(b1 < b2) { if(b1+(c1-c2)/11 >= b2) { ans+=(c1-c2)/11; b1+=(c1-c2)/11; c1-=(c1-c2)/11*11; } } b1 >= b2 ? cout<<ans<<endl : cout<<-1<<endl; return 0; }