Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // D.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <fstream>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- ull h[100000], v[100000];
- ll n, H, T;
- bool check(ll t)
- {
- ll temp = t;
- for (int z = 0; z < T; z++)
- {
- for (int i = n - 1; i >= 0; i--)
- {
- if (h[i] <= t)
- t = max(h[i] - 1, t - v[i]);
- }
- if (t >= H)
- return 1;
- t += temp;
- }
- return 0;
- }
- int main()
- {
- cin >> n >> H >> T;
- ll ans = H;
- for (int i = 0; i < n; i++)
- {
- cin >> h[i] >> v[i];
- //if (h[i] + v[i] >= H && h[i] <= H)
- ans += v[i];
- }
- ll l = 0, r = ans + 1;
- while (l + 1 < r)
- {
- ll m = (l + r) / 2;
- //cout << l << ' ' << r << ' ' << m << ' ' << check(m) << endl;
- //system("pause");
- if (check(m))
- r = m;
- else
- l = m;
- }
- cout << r << endl;
- system("pause");
- return 0;
- }
- /*
- // ConsoleApplication9.cpp : Defines the entry point for the console application.
- //
- //#include "stdafx.h"
- #include <iostream>
- #include <fstream>
- #include <cmath>
- #include <algorithm>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- ull h[100000], v[100000];
- ll n, H, T;
- bool check(ll t)
- {
- ll temp = t;
- for (int z = 0; z < T; z++)
- {
- for (int i = n - 1; i >= 0; i--)
- {
- if (h[i] <= t)
- t = max(h[i] - 1, t - v[i]);
- }
- if (t >= H)
- return 1;
- t += temp;
- }
- return 0;
- }
- int main()
- {
- //cin >> n >> H >> T;
- n = 100000;
- H = 1000000000;
- T = H;
- ll ans = H;
- for (int i = 0; i < n; i++)
- {
- //cin >> h[i] >> v[i];
- h[i] = i + 1;
- v[i] = H;
- //if (h[i] + v[i] >= H && h[i] <= H)
- ans += v[i];
- }
- ll l = 0, r = ans + 1;
- while (l + 1 < r)
- {
- ll m = (l + r) / 2;
- //cout << l << ' ' << r << ' ' << m << ' ' << check(m) << endl;
- //system("pause");
- if (check(m))
- r = m;
- else
- l = m;
- }
- cout << r << endl;
- //system("pause");
- return 0;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement