Pagini recente » Cod sursa (job #2671115) | Cod sursa (job #280718) | Cod sursa (job #2033132) | Cod sursa (job #104678) | Cod sursa (job #1165458)
#include <fstream>
#define MAXN 16005
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,m,v[MAXN],st,dr,mij,x,S;
bool merge(int p);
int main()
{
int i;
f>>n>>m;
for(i=1;i<=n;i++)
f>>v[i];
st=1;dr=MAXN*MAXN;
while(st<dr){
mij=(st+dr)>>1;
if(merge(mij))
dr=mij-1;
else
st=mij+1;}
while(!merge(dr))
dr++;
g<<dr<<'\n';
f.close();
g.close();
return 0;
}
bool merge(int p){
int i;
x=S=0;
for(i=1;i<=n&&x<m;i++){
S+=v[i];
if(S>p){
x++;
S=0;
i--;}}
if(x==m)
return 0;
return 1;}