Pagini recente » Cod sursa (job #2810189) | Cod sursa (job #2279885) | Cod sursa (job #1285254) | Cod sursa (job #1344002) | Cod sursa (job #595831)
Cod sursa(job #595831)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16002],n,k;
bool verif(int cap)
{
int i=1,nr=1,disp=cap;
//g<<"\n****\ntestez "<<cap<<" :\n";
while(i<=n)
{
if(v[i]<=disp)
disp = disp-v[i];
else
{
disp = cap - v[i];
if(disp < 0)
return false;
nr++;
}
if(nr>k)
return false;
//g<<"dupa "<<i<<" am "<<nr<<" transporturi si "<<disp<<" capacitate disp\n";
i++;
}
return true;
}
int caut(int x)
{
int i,pas=(1<<30);
for(i=0;pas!=0;pas>>=1)
if(!verif(i+pas)) i+=pas;
return i+1;
}
int main()
{
int i,c;
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
c=caut(k);
g<<c<<"\n";
}