#include <bits/stdc++.h>
using namespace std;
long long labs(long long a) { return a < 0 ? (-a) : a; }
long long max(long long a, long long b) { return a > b ? a : b; }
long long min(long long a, long long b) { return a < b ? a : b; }
template <typename T>
struct Point {
  T x, y;
  Point() {}
  Point(T xx, T yy) : x(xx), y(yy) {}
};
template <typename T>
bool operator<(const Point<T> &p1, const Point<T> &p2) {
  return p1.x < p2.x || p1.x == p2.x && p1.y < p2.y;
}
double CalcT(long long t1, long long t2, long long y1, long long y2) {
  return (double)(t1 * y1 + t2 * y2) / (y1 + y2);
}
const double EPS = 1e-9;
int main() {
  long long t1, t2, x1, x2, t0;
  cin >> t1 >> t2 >> x1 >> x2 >> t0;
  long long ry1 = 0, ry2 = x2;
  for (long long y1 = 0; y1 <= x1; y1++) {
    long long y2;
    if (t0 != t2)
      y2 = (long long)ceil((double)y1 * (t1 - t0) / (t0 - t2));
    else if (t1 == t2) {
      y2 = x2;
    } else
      continue;
    if (y2 > x2 || y1 == 0 && y2 == 0) continue;
    double diff =
        fabs(t0 - CalcT(t1, t2, ry1, ry2)) - fabs(t0 - CalcT(t1, t2, y1, y2));
    if (diff < -EPS) {
      continue;
    }
    if (diff > EPS || diff < EPS && y1 + y2 >= ry1 + ry2) {
      ry1 = y1;
      ry2 = y2;
    }
  }
  cout << ry1 << " " << ry2 << endl;
  return 0;
}
