#include<bits/stdc++.h>
using namespace std;
template<typename X, typename Y>
bool chmax(X& a, Y b) { return (a < b) ? a = b, 1 : 0; }
template<typename X, typename Y>
bool chmin(X& a, Y b) { return (a > b) ? a = b, 1 : 0; }
using ll = long long;
int n;
ll s, v0;
struct Op {
ll c, v;
bool operator<(const Op& o) const {
if (c != o.c) return c < o.c;
return v > o.v;
}
};
struct Line {
ll T, P, V;
pair<ll, ll> eval(ll x) const {
ll req = x - P;
if (req <= 0) return {T, -(P - x)};
ll dt = (req + V - 1) / V;
return {T + dt, -(dt * V + P - x)};
}
};
bool better(Line L1, Line L2, ll x) { return L2.eval(x) < L1.eval(x); }
ll cross(Line L1, Line L2) {
ll low = 0, high = s + 1, ans = high;
while (low <= high) {
ll mid = low + (high - low) / 2;
if (better(L1, L2, mid)) ans = mid, high = mid - 1;
else low = mid + 1;
}
return ans;
}
bool bad(Line L1, Line L2, Line L3) {
return cross(L2, L3) <= cross(L1, L2);
}
void solve() {
cin >> n >> s >> v0;
vector<Op> ops(n);
for (int i = 0; i < n; i++) cin >> ops[i].c >> ops[i].v;
sort(ops.begin(), ops.end());
vector<Op> f;
ll max_v = v0;
for (auto op : ops)
if (chmax(max_v, op.v) && op.c < s)
f.push_back(op);
int m = f.size();
vector<Line> lines(m + 1);
lines[0] = {0, 0, v0};
deque<Line> dq;
dq.push_back(lines[0]);
for (int i = 1; i <= m; i++) {
int x = f[i - 1].c;
while ((int)dq.size() >= 2 && better(dq[0], dq[1], x)) dq.pop_front();
auto [T, P] = dq.front().eval(x);
lines[i] = {T, -P, f[i - 1].v};
while ((int)dq.size() >= 2) {
if (bad(dq[(int)dq.size() - 2], dq.back(), lines[i])) dq.pop_back();
else break;
}
dq.push_back(lines[i]);
}
while ((int)dq.size() >= 2 && better(dq[0], dq[1], s)) dq.pop_front();
cout << dq.front().eval(s).first << '\n';
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifdef LOCAL
cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFgsIHR5cGVuYW1lIFk+CmJvb2wgY2htYXgoWCYgYSwgWSBiKSB7IHJldHVybiAoYSA8IGIpID8gYSA9IGIsIDEgOiAwOyB9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBYLCB0eXBlbmFtZSBZPgpib29sIGNobWluKFgmIGEsIFkgYikgeyByZXR1cm4gKGEgPiBiKSA/IGEgPSBiLCAxIDogMDsgfQoKdXNpbmcgbGwgPSBsb25nIGxvbmc7CgppbnQgbjsgCmxsIHMsIHYwOyAKCnN0cnVjdCBPcCB7CiAgICBsbCBjLCB2OwogICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgT3AmIG8pIGNvbnN0IHsKICAgICAgICBpZiAoYyAhPSBvLmMpIHJldHVybiBjIDwgby5jOwogICAgICAgIHJldHVybiB2ID4gby52OwogICAgfQp9OwoKc3RydWN0IExpbmUgewogICAgbGwgVCwgUCwgVjsKICAgIHBhaXI8bGwsIGxsPiBldmFsKGxsIHgpIGNvbnN0IHsKICAgICAgICBsbCByZXEgPSB4IC0gUDsKICAgICAgICBpZiAocmVxIDw9IDApIHJldHVybiB7VCwgLShQIC0geCl9OwogICAgICAgIGxsIGR0ID0gKHJlcSArIFYgLSAxKSAvIFY7CiAgICAgICAgcmV0dXJuIHtUICsgZHQsIC0oZHQgKiBWICsgUCAtIHgpfTsKICAgIH0KfTsKCmJvb2wgYmV0dGVyKExpbmUgTDEsIExpbmUgTDIsIGxsIHgpIHsgcmV0dXJuIEwyLmV2YWwoeCkgPCBMMS5ldmFsKHgpOyB9CgpsbCBjcm9zcyhMaW5lIEwxLCBMaW5lIEwyKSB7CiAgICBsbCBsb3cgPSAwLCBoaWdoID0gcyArIDEsIGFucyA9IGhpZ2g7CiAgICB3aGlsZSAobG93IDw9IGhpZ2gpIHsKICAgICAgICBsbCBtaWQgPSBsb3cgKyAoaGlnaCAtIGxvdykgLyAyOwogICAgICAgIGlmIChiZXR0ZXIoTDEsIEwyLCBtaWQpKSBhbnMgPSBtaWQsIGhpZ2ggPSBtaWQgLSAxOwogICAgICAgIGVsc2UgbG93ID0gbWlkICsgMTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KCmJvb2wgYmFkKExpbmUgTDEsIExpbmUgTDIsIExpbmUgTDMpIHsKICAgIHJldHVybiBjcm9zcyhMMiwgTDMpIDw9IGNyb3NzKEwxLCBMMik7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBzID4+IHYwOwogICAgdmVjdG9yPE9wPiBvcHMobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgY2luID4+IG9wc1tpXS5jID4+IG9wc1tpXS52OwogICAgc29ydChvcHMuYmVnaW4oKSwgb3BzLmVuZCgpKTsKICAgIHZlY3RvcjxPcD4gZjsKICAgIGxsIG1heF92ID0gdjA7CiAgICBmb3IgKGF1dG8gb3AgOiBvcHMpCiAgICAgICAgaWYgKGNobWF4KG1heF92LCBvcC52KSAmJiBvcC5jIDwgcykKICAgICAgICAgICAgZi5wdXNoX2JhY2sob3ApOwogICAgaW50IG0gPSBmLnNpemUoKTsKICAgIHZlY3RvcjxMaW5lPiBsaW5lcyhtICsgMSk7CiAgICBsaW5lc1swXSA9IHswLCAwLCB2MH07CiAgICBkZXF1ZTxMaW5lPiBkcTsKICAgIGRxLnB1c2hfYmFjayhsaW5lc1swXSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKICAgICAgICBpbnQgeCA9IGZbaSAtIDFdLmM7CiAgICAgICAgd2hpbGUgKChpbnQpZHEuc2l6ZSgpID49IDIgJiYgYmV0dGVyKGRxWzBdLCBkcVsxXSwgeCkpIGRxLnBvcF9mcm9udCgpOwogICAgICAgIGF1dG8gW1QsIFBdID0gZHEuZnJvbnQoKS5ldmFsKHgpOwogICAgICAgIGxpbmVzW2ldID0ge1QsIC1QLCBmW2kgLSAxXS52fTsKICAgICAgICB3aGlsZSAoKGludClkcS5zaXplKCkgPj0gMikgewogICAgICAgICAgICBpZiAoYmFkKGRxWyhpbnQpZHEuc2l6ZSgpIC0gMl0sIGRxLmJhY2soKSwgbGluZXNbaV0pKSBkcS5wb3BfYmFjaygpOwogICAgICAgICAgICBlbHNlIGJyZWFrOwogICAgICAgIH0KICAgICAgICBkcS5wdXNoX2JhY2sobGluZXNbaV0pOwogICAgfQogICAgd2hpbGUgKChpbnQpZHEuc2l6ZSgpID49IDIgJiYgYmV0dGVyKGRxWzBdLCBkcVsxXSwgcykpIGRxLnBvcF9mcm9udCgpOwogICAgY291dCA8PCBkcS5mcm9udCgpLmV2YWwocykuZmlyc3QgPDwgJ1xuJzsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsKCiAgICBpbnQgdGVzdHMgPSAxOyAvLyBjaW4gPj4gdGVzdHM7CiAgICB3aGlsZSAodGVzdHMtLSkgc29sdmUoKTsKCiAgICAjaWZkZWYgTE9DQUwKICAgIGNlcnIgPDwgIlxuVGltZSBlbGFwc2VkOiAiIDw8IDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAiIHMuXG4iOwogICAgI2VuZGlmCiAgICByZXR1cm4gMDsKfQ==