Pagini recente » Cod sursa (job #1693073) | Cod sursa (job #2661242) | Cod sursa (job #732228) | Cod sursa (job #969277) | Cod sursa (job #1984060)
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
#include <utility>
#include<iostream>
#include<queue>
#include<utility>
#define RRR ios_base::sync_with_stdio(false);cin.tie(0);
#define ll long long
#define int ll
#define pp pair<int,int>
using namespace std;
vector <int> ar;
int n;
int k;
int i;
bool check(int c)
{
int nr = 1;
int sum = 0;
for (int i=0;i<n;i++)
{
if (sum + ar[i] > c)
{
sum = ar[i];
nr++;
}
else sum+=ar[i];
}
if (nr <= k)
return true;
return false;
}
int32_t main()
{
RRR
// freopen("text.txt","r",stdin);
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
cin >> n >> k;
for (int i=0;i<n;i++)
{
int z;
cin >> z;
ar.push_back(z);
}
//sort(ar.begin(),ar.end());
int m;
int l = 0;
int high = 16000*16000+100;
int rs = 16000*16000+100;
while (l <= high)
{
m = (l+high)/2;
if (check(m))
{ high = m-1;
rs = min(rs,m);
}
else l = m+1;
}
cout << rs;
return 0;
}