Pagini recente » Istoria paginii runda/ccex-2013-clasele-11-12/clasament | Cod sursa (job #2746866) | Cod sursa (job #1471292) | Cod sursa (job #2663574) | Cod sursa (job #2561644)
#include <iostream>
#include <fstream>
using namespace std;
int mij,n,k,a[16021],p=0;
ifstream f("transport.in");
ofstream g("transport.out");
int verif(int y)
{
int drum=1,tr=0,i;
for (i=1;i<=n && drum<=k;i++)
{
tr=tr+a[i];
if (tr>y)
{
tr=a[i];
drum++;
}
}
if (drum<=k) return 1;
else return 0;
}
void caut_bin(int st, int dr)
{
while (st<=dr)
{
mij=(st+dr)/2;
if (verif(mij)==1)
{
p=mij;
dr=mij-1;
}
else
{
st=mij+1;
}
}
}
int main ()
{
int mx=0,s=0,i;
f>>n>>k;
for (i=1;i<=n;i++)
{
f>>a[i];
s=s+a[i];
if (a[i]>mx)
{
mx=a[i];
}
}
caut_bin(mx,s);
g<<p;
}