Pagini recente » Cod sursa (job #1773231) | Cod sursa (job #1740745) | Cod sursa (job #1463325) | Cod sursa (job #104219) | Cod sursa (job #1453353)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int i,v[20000],n,k,j,a,maxi,mini=160000,ok,t,c;
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
maxi+=v[i];
mini=min(mini,v[i]);
}
while(maxi>mini)
{
a=maxi+mini;
a/=2;
t=0;
c=a;
for(i=1;i<=n;i++)
{
if(v[i]>c)
{
t++;
c=a-v[i];
}
else
if(v[i]<c)
c-=v[i];
else
t++,c=a;
}
if(c!=a)
t++;
if(t>k)
if(mini+1==maxi)
{fout<<mini;return 0;}
else
mini=a+1;
else
if(mini+1==maxi)
{fout<<mini;return 0;}
else
maxi=a-1;
}
fout<<maxi;
return 0;
}