#pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimization ("unroll-loops") #include using namespace std; int A[4]; int B[4]; int N,T; unordered_map memo; string func(int X,int Y) { string a = ""; string b = ""; while(a.length() < 9) { a = (char)(X%10 + '0') + a; X/=10; } while(b.length() < 5) { b = (char)(Y%10 + '0') + b; Y/=10; } return a + b; } int main(void) { cin.tie(0); ios::sync_with_stdio(false); cin >> A[0] >> A[1] >> A[2] >> A[3] >> N; cin >> B[0] >> B[1] >> B[2] >> B[3] >> T; for(int x=0;x<=A[0];x++){ if(x > N) break; if(x*B[0] > T) break; for(int y=0;y<=A[1];y++) { if(y > N) break; if(x+y > N) break; int X = x + y; int Y = B[0]*x + B[1]*y; if(Y > T) break; string s = func(X,Y); //cout << X << ' ' << Y << ' ' << s << '\n'; if(memo.find(s)==memo.end()) memo[s] = x; } } for(int x=0;x<=A[2];x++){ if(x > N) break; if(x*B[2] > T) break; for(int y=0;y<=A[3];y++) { if(y > N) break; if(x+y > N) break; int X = x + y; int Y = B[2]*x + B[3]*y; if(Y > T) break; string s = func(N-X,T-Y); // cout << N - X << ' ' << T - Y << ' ' << s << '\n'; if(memo.find(s)!=memo.end()) { int a1 = memo[s]; int a2 = N - a1 - x - y; int a3 = x; int a4 = y; cout << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4 << '\n'; return 0; } } } return 0; }