Pagini recente » Cod sursa (job #1713025) | Cod sursa (job #1921866) | Cod sursa (job #3194024) | Cod sursa (job #254325) | Cod sursa (job #2073431)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int arr[16000],n,k,m;
bool check(int x)
{
if(x<m)
return 0;
int i,y=1,s=0;
for(i=0;i<n;i++)
{
if(s+arr[i]>x)
{
y++;
s=arr[i];
}
else
s+=arr[i];
if(y>k)
return 0;
}
return 1;
}
int main()
{
int i,pas=1<<30;
in>>n>>k;
for(i=0;i<n;i++)
{
in>>arr[i];
if(arr[i]>m)
m=arr[i];
}
i=0;
while(pas)
{
if(!check(i+pas))
i+=pas;
pas>>=1;
}
out<<i+1;
return 0;
}