小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; }