Cod sursa(job #1020578)

Utilizator alexsuciuAlex Suciu alexsuciu Data 2 noiembrie 2013 11:46:13
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[100],i,k,c,n;
int li,ls,sum,m;

ifstream f("transport.in");
ofstream g("transport.out");

int capac(int m,int k)
{
    int s=v[1],i=2,nr=0;
    while (i<n && nr<k)
    {

        if(s+v[i]>m) {s=0; k++;}
        else s=s+v[i];
        i++;
    }
    if(i==n) return 1;
    else return 0;

}
int main()
{
    f>>n>>k;
    for(i=1;i<=n;i++)
        {f>>v[i];
        sum=sum+v[i];}
    li=1; ls=sum;
    while(li<=ls)
    {
        m=(li+ls)/2;
        if(capac(m,k)) ls=m-1;
        else li=m+1;
    }
    g<<li;
}