Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstring>
- #include <vector>
- #include <list>
- #include <map>
- #include <set>
- #include <deque>
- #include <stack>
- #include <bitset>
- #include <algorithm>
- #include <functional>
- #include <numeric>
- #include <utility>
- #include <sstream>
- #include <iostream>
- #include <iomanip>
- #include <cstdio>
- #include <cmath>
- #include <queue>
- #include <cstdlib>
- #include <ctime>
- #include <cassert>
- #define pii pair<ld, ld>
- #define pb push_back
- #define mp make_pair
- #define x first
- #define y second
- using namespace std;
- typedef unsigned long long ull;
- typedef long long ll;
- typedef long double ld;
- const int MXN = 1e5 * 2 + 1;
- const int TMXN = 1e5 * 8 + 1;
- const int INF = 1e9 + 7;
- const ll INFL = 1e18;
- ll n, m, t[TMXN], l, r, d[TMXN], res, c, maxk, ind = 1, ans, k;
- ll a[MXN], two = 1, b[MXN];
- bool chec(int x){
- for(int i = 2; i <= n; i++){
- if(a[i] - a[ind] >= x){
- ind = i;
- ans ++;
- }
- }
- if(ans >= k){
- return true;
- }
- else{
- return false;
- }
- }
- int main(){
- freopen("cows.in", "r", stdin);
- freopen("cows.out", "w", stdout);
- cin >> n >> k;
- for(int i = 1; i <= n; i++){
- cin >> a[i];
- }
- l = 0;
- r = INF;
- while(r - l > 1){
- ll mid = (l + r) / 2;
- ind = 1;
- ans = 1;
- if(chec(mid)){
- l = mid;
- maxk = max(maxk, mid);
- }
- else{
- r = mid;
- }
- }
- cout << maxk;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment