Cod sursa(job #1020580)

Utilizator alexsuciuAlex Suciu alexsuciu Data 2 noiembrie 2013 11:47:47
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[16001],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=v[i]; nr++;}
        else s=s+v[i];
        i++;
    }
    if(nr<k) return 1;
    else return 0;

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