Pagini recente » Cod sursa (job #2145883) | Cod sursa (job #2377945) | Cod sursa (job #2474547) | Cod sursa (job #1793250) | Cod sursa (job #2332789)
#include <bits/stdc++.h>
using namespace std;
ifstream f("transport.in");
int s, maxi=-1, n, i, k, v[160001];
int check(int val)
{int c=1, sum=0;
for(i=1; i<=n; i++)
{sum=sum+v[i];
if(sum>val){c++; sum=v[i];}
}
if(c>k)return 0; else return 1;
}
int cautbin()
{int st=maxi, dr=s;
int rasp=-1;
while(st<=dr)
{int mij=(st+dr)/2;
if(check(mij))
{rasp=mij;
dr=mij-1;
}
else
st=mij+1;
}
return rasp;
}
int main()
{f>>n>>k;
for(i=1; i<=n; i++)
{f>>v[i];
maxi=max(maxi, v[i]);
s=s+v[i];
}
cout<< cautbin();
f.close();
return 0;
}