#include using namespace std; typedef signed long long ll; #undef _P #define _P(...) (void)printf(__VA_ARGS__) #define FOR(x,to) for(x=0;x,int>,int> M; pair,int> h(int a,int b,int c) { return make_pair(make_pair(a,b),c); } void solve() { int i,j,k,l,r,x,y; string s; cin>>A[0]>>A[1]>>A[2]; cin>>DB; cin>>B[0]>>B[1]>>B[2]; cin>>DC; cin>>C[0]>>C[1]>>C[2]; M[h(A[0],A[1],A[2])]=0; queue,int> > q; q.push(h(A[0],A[1],A[2])); while(q.size()) { pair,int> k=q.front(),k2=k; q.pop(); ma=max(ma,M[k]); int x=DB; i=min(x/1000,k.first.first); k.first.first -= i; x -= i*1000; i=min(x/100,k.first.second); k.first.second -= i; x -= i*100; i=min(x,k.second); k.second -= i; x -= i; if(x==0) { M[h(k.first.first+B[0],k.first.second+B[1],k.second+B[2])]=ma+1; q.push(h(k.first.first+B[0],k.first.second+B[1],k.second+B[2])); } k=k2; x=DC; i=min(x/1000,k.first.first); k.first.first -= i; x -= i*1000; i=min(x/100,k.first.second); k.first.second -= i; x -= i*100; i=min(x,k.second); k.second -= i; x -= i; if(x==0) { M[h(k.first.first+C[0],k.first.second+C[1],k.second+C[2])]=ma+1; q.push(h(k.first.first+C[0],k.first.second+C[1],k.second+C[2])); } } cout<