Pagini recente » Cod sursa (job #534279) | Cod sursa (job #1483104) | Cod sursa (job #569019) | Cod sursa (job #2482717) | Cod sursa (job #1081679)
#include <fstream>
using namespace std;
int a[16005],n,k,sol;
ifstream f("transport.in");
ofstream g("transport.out");
bool valid(int q)
{
int sum = 0,l = k;
for(int i = 1;i <= n; i++)
{
sum += a[i];
if(q == sum)
{
sum = 0;
l--;
}
else if(q < sum)
{
i--;
sum = 0;
l--;
}
if(l == 0)
{if(i == n)
return true;
else return false;}
}
return true;
}
void cautare_binara()
{
int x = 0;
long long t = (1<<28);
while(t > 0)
{
if(valid(x + t)) sol = x + t;
else x += t;
t >>= 1;
}
}
int main()
{
f >> n >> k;
for(int i = 1;i <= n; i++)
f >> a[i];
cautare_binara();
g<<sol;
f.close();
g.close();
return 0;
}