Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int axa[100006];
- bool check (int k, int t, int G)
- {
- for (int i = 1; i<=k+1; ++i)
- {
- int dist = axa[i] - axa[i-1];
- if (dist > G + t) return false;
- t -= max (0, dist - G);
- }
- return true;
- }
- int main()
- {
- ifstream fin ("ghiozdan.in");
- ofstream fout ("ghiozdan.out");
- int put = 24;
- int d, k, t;
- fin >> d >> k >> t;
- axa[0] = 0;
- axa[k+1] = d;
- for (int i = 1; i<=k; ++i)
- fin >> axa[i];
- int best = 0;
- if (check(k, t, best))
- {
- fout << best;
- return 0;
- }
- for (int i = put; i>=0; --i)
- if (check(k, t, best + (1<<i)) == false)
- best += (1<<i);
- fout << best + 1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement