#include <bits/stdc++.h>
using namespace std;
map<long long, long long> mp;
set<long long> st;
int main() {
  ios::sync_with_stdio(0);
  long long a, b, w, x, c;
  cin >> a >> b >> w >> x >> c;
  long long t = b;
  mp[0] = b;
  st.insert(b);
  long long sz;
  long long i, j;
  for (i = 1;; i++) {
    if (t >= x)
      t -= x;
    else
      t = w - (x - t);
    if (st.find(t) == st.end())
      mp[i] = t;
    else
      break;
    st.insert(t);
  }
  sz = i - 1;
  long long next = t;
  long long loop;
  for (i = 0; i <= sz; i++)
    if (next == mp[i]) {
      loop = i;
      break;
    }
  long long ans = 0;
  for (i = 0; i < loop && c > a; i++) {
    c--;
    if (mp[i] < x) a--;
    ans++;
  }
  if (c <= a) {
    cout << ans << endl;
    return 0;
  }
  long long deca = 0;
  for (i = loop; i <= sz; i++)
    if (mp[i] < x) deca++;
  long long decc = sz - loop + 1;
  long long cha = c - a;
  long long con = cha / (decc - deca);
  if (c - con * decc == a - con * deca) con--;
  ans += con * decc;
  c -= con * decc;
  a -= con * deca;
  i = loop;
  while (c > a) {
    c--;
    if (mp[i] < x) a--;
    ans++;
    i++;
    if (i > sz) i = loop;
  }
  cout << ans << endl;
  return 0;
}
