#include <bits/stdc++.h>
using namespace std;
long long t1, t2, x1, x2, t0;
long long check(long long y1, long long y2) {
  return t1 * y1 + t2 * y2 - t0 * y1 - t0 * y2;
}
struct func {
  long long nu;
  long long de;
};
int comp1(func p, func q) {
  if (p.nu * q.de > p.de * q.nu) return 1;
  if (p.nu * q.de < p.de * q.nu) return -1;
  return 0;
}
long long bs(long long st, long long end, long long y2) {
  if (st > end) return -1000000;
  if (st == end) return st;
  long long mid = (st + end) / 2;
  if (check(mid, y2) < 0) return bs(st, mid - 1, y2);
  if (check(mid + 1, y2) < 0) return mid;
  return bs(mid + 1, end, y2);
}
long long bs2(long long st, long long end, long long y1) {
  if (st > end) return -1000000;
  if (st == end) return st;
  long long mid = (st + end) / 2;
  if (check(y1, mid) < 0) return bs(mid + 1, end, y1);
  if (check(y1, mid - 1) < 0) return mid;
  return bs(st, mid - 1, y1);
}
int main() {
  while (cin >> t1 >> t2 >> x1 >> x2 >> t0) {
    long long i;
    func close;
    close.nu = t2;
    close.de = 1;
    long long y1 = 0, y2 = x2;
    long long q = x2;
    for (i = 0; i <= x2; i++) {
      long long ytem = bs(0, x1, i);
      long long chk = check(ytem, i);
      if (chk < 0) continue;
      func r;
      r.nu = chk;
      r.de = ytem + i;
      if (comp1(r, close) == -1) {
        close = r;
        y1 = ytem;
        y2 = i;
        q = y1 + y2;
      } else if (comp1(r, close) == 0 && ytem + i > q) {
        y1 = ytem;
        y2 = i;
        q = y1 + y2;
      }
    }
    cout << y1 << " " << y2 << endl;
  }
  return 0;
}
