Pagini recente » Cod sursa (job #2009996) | Cod sursa (job #432563) | Cod sursa (job #2672087) | Cod sursa (job #1139998) | Cod sursa (job #1534963)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16001],mini,stg,dr,sum;
int verificare(int mij,int k)
{
int i=1,sum;
while(i<=n && k>0)
{
sum=0;
while(i<=n && sum<mij )
{sum+=v[i];
i++;
}
if(sum>mij)
i--;
k--;
}
if(i<=n)return 0;
return 1;
}
int main()
{
int mij,i;
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>v[i];
if(v[i]>stg)
stg=v[i];
sum+=v[i];
}
dr=sum;
while(stg<sum)
{
mij=(stg+sum)/2;
if(verificare(mij,k)==0)
stg=mij+1;
else
{
sum=mij;
dr=mij;
}
}
g<<dr;
f.close();
g.close();
return 0;
}