#ifndef ONLINE_JUDGE #define _GLIBCXX_DEBUG #endif #define _USE_MATH_DEFINES #include using namespace std; using ll = long long; //https://boostjp.github.io/tips/multiprec-ll.html #define YES cout<<"Yes\n" #define NO cout<<"No\n" #define YN {cout<<"Yes\n";}else{cout<<"No\n";}// if(a==b)YN; #define NO2 cout<<"-1\n" #define rep(i, n) for (ll i = 0; i < (ll)(n); ++i) #define rrep(i, n) for (ll i=ll(n)-1; i>=0; --i) #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #ifndef ONLINE_JUDGE #define _GLIBCXX_DEBUG #endif void solve() { ll N,X,Y,A,B; cin >> N >> X >> Y >> A >> B; if (0= 0) { cout << X << ' ' << Y-B*N << endl; return; } // else ll left=-1, right=N; while(right-left>1) { ll mid = (left+right)/2; if (X+A*mid+Y-B*(N-mid) < -B) left=mid; else right=mid; } cout << X + A*right << ' ' << Y - B*(N-right) << endl; } else { //(B<=0) if (X+Y >= 0) { cout << X << ' ' << Y-B*N << endl; } else { ll k = (-X-Y+A-1)/A; cout << X+(A*min(k,N)) << ' ' << Y-(B*max(N-k,0LL)) << endl; } } } else { //(A<=0) if (X+Y < 0) { cout << X+A*N << ' ' << Y << endl; return; } // X+Y>=0 if (0> T; while(T--) { solve(); } }