Pagini recente » Cod sursa (job #1310448) | Cod sursa (job #985366) | Cod sursa (job #3203948) | Cod sursa (job #1363175) | Cod sursa (job #1305206)
#include<iostream>
#include<fstream>
using namespace std;
unsigned int a[16000],n,k;
int verif(unsigned int c)
{
unsigned int S=0,r=1,i=1;
while(i<=n&&r<=k)
if(S+a[i]<=c) {S=S+a[i]; i++;}
else {r++; S=0;}
if(i==n+1) return 1; return 0;
}
int caut(unsigned int s,unsigned int d)
{
unsigned int m;
if(s==d) return s;
m=(s+d)/2;
if (verif(m)) return caut(s,m);
else return caut(m+1,d);
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
unsigned int i,p=0;
f>>n>>k;
for(i=1;i<=n;i++)
{f>>a[i]; p=p+a[i];}
g<<caut(1,p);
f.close();
g.close();
return 0;
}