Pagini recente » Cod sursa (job #1161548) | Cod sursa (job #1577835) | Cod sursa (job #1129484) | Rezultatele filtrării | Cod sursa (job #3298175)
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
using namespace std;
int n, k;
int v[100001];
struct cop{
int suma, l, r, ord;
};
bool check(int sum){
int s = 0, cnt = 0;
for(int i = 0; i < n; i++)
if(s < sum)
s += v[i];
else
s = v[i],
cnt++;
if(s >= sum)
cnt++;
if(cnt < k)
return 0;
return 1;
}
bool cmp(cop a, cop b){
if(a.suma == b.suma) return a.l < b.l;
return a.suma < b.suma;
}
bool leftt(cop a, cop b){
return a.l < b.l;
}
signed main(void) {
ifstream cin("transport.in");
ofstream cout("transport.out");
vector<cop> m;
int s =0, ll=0, i=0, cnt=0;
int sum=0;
cin>>n>>k;
for(int i=0; i<n; i++){
cin>>v[i];
sum += v[i];
}
int l=0, r=sum+1;
while(l<r){
int mid = (l+r+1) / 2;
if(check(mid) == true)
l = mid ;
else r = mid-1;
}
cout<<r<<endl;
return 0;
}