Mai intai trebuie sa te autentifici.
Cod sursa(job #1044861)
Utilizator | Data | 30 noiembrie 2013 15:45:58 | |
---|---|---|---|
Problema | Transport | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.85 kb |
#include <fstream>
using namespace std;
int a[16001],n,k,sol;
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 cbinara()
{
int pz=0;
long long t=(1<<28);
while(t>0)
{
if(valid(pz+t)) sol=pz+t;
else pz+=t;
t>>=1;
}
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
f>>n>>k;
for(int i=1;i<=n;i++)
f>>a[i];
cbinara();
g<<sol;
f.close();
g.close();
return 0;
}