Mai intai trebuie sa te autentifici.
Cod sursa(job #1663629)
Utilizator | Data | 26 martie 2016 10:20:33 | |
---|---|---|---|
Problema | Transport | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("transport.in");
ofstream fout ("transport.out");
int n, k, x=0, c, i, v[16001], l1=0, l2=0, m;
fin>>n>>k;
for (i=0; i<n; i++)
{
fin>>v[i];
l2=l2+v[i];
if (v[i]>l1)
l1=v[i];
}
while (l1<=l2)
{
i=0;
x=0;
c=(l2+l1)/2;
while (i<n)
{
m=0;
while (m+v[i]<=c && i<n)
{
m=m+v[i];
i++;
}
x++;
}
if (x<=k)
l2=c-1;
else l1=c+1;
}
fout<<c;
return 0;
}