Pagini recente » Cod sursa (job #119636) | Cod sursa (job #2373805) | Cod sursa (job #1834254) | piscot256 | Cod sursa (job #2279684)
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int a[16004], n, i, c, st, mij, dr, ans;
int transport(int n, int a[], int x)
{
int cnt=0;
int sum=0;
for(i=1;i<=n;i++)
{
if(a[i]>x)
{
return 0;
}
if(sum+a[i]<=x)
{
sum+=a[i];
}
else
{
cnt++;
sum=a[i];
}
}
return (cnt<=c);
}
int main()
{
fin>>n>>c;
dr=0;
for(i=1;i<=n;i++)
{
fin>>a[i];
dr+=a[i];
}
st=1;
ans=0;
while(st<=dr)
{
mij=st+(dr-st)/2;
if(transport(n,a,mij)==1)
{
ans=mij;
dr=mij-1;
}
else
{
st=mij+1;
}
}
fout<<ans;
fin.close();
fout.close();
return 0;
}