Pagini recente » Clasament concursceva2 | Cod sursa (job #962073) | Cod sursa (job #3216095) | Cod sursa (job #2275019) | Cod sursa (job #2257072)
#include <iostream>
#include <fstream>
using namespace std;
int t[16000],n,k;
int szimulal(int m)
{
int h=1,c=0;
for (int i=1; i<=n; i++)
{
if (m<=t[i]+c)
c=c+t[i];
else
{
h++;
c=t[i];
}
}
if (h<k)
return 0;
return 1;
}
int binaris(int a,int b,int x)
{
if (a==b)
return a;
int t=(a+b)/2;
if (szimulal(k)==0)
return binaris(t+1,b,x);
else
return binaris(a,t,x);
}
int main()
{
int i,m=0,h=0;
ifstream be("transport.in");
be>>n>>k;
for (i=1; i<=n; i++)
be>>t[i];
be.close();
for (i=1; i<=n; i++)
{
h=h+t[i];
if (m<t[i])
m=t[i];
}
ofstream ki("transport.out");
ki<<binaris(m,h,(m+h)/2);
ki.close();
return 0;
}