Pagini recente » Cod sursa (job #412258) | Cod sursa (job #2294291) | Cod sursa (job #2061632) | Cod sursa (job #2625154) | Cod sursa (job #2087417)
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int L=27;
int v[16000],n,k;
bool sepoate(int);
int main()
{
fin>>n>>k;
for(int i=0; i<n; i++)
fin>>v[i];
int pas,r=0;
pas=1<<L;
while(pas)
{
if(!sepoate(r+pas)) r+=pas;
pas/=2;
}
r++;
fout<<r;
return 0;
}
bool sepoate(int x)
{
int nr=1,cx=x;
for(int i=0;i<n;i++)
{
if(v[i]>x) return false;
if(v[i]>cx)
{
nr++;
cx=x;
}
cx-=v[i];
if(nr>k) return false;
}
return true;
}