Cod sursa(job #1029182)

Utilizator AlexandravVoda Alexandra Ioana Alexandrav Data 15 noiembrie 2013 08:46:35
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
 
using namespace std;
int v[16000],n,k; 
int cautare(int li, int ls)
{
	int drum, s, mij,i;
	while(li<ls)
    {
        drum=1;
        s=0;
        mij=(li+ls)/2;
        for(i=0; i<n; i++)
            if(s+v[i]<=mij)
                s=s+v[i];
            else
            {
                s=v[i];
                drum++;
            }
 
        if(drum>k)
            li=mij+1;
        else
            ls=mij;
    }
	return li;
}

int main()
{
	ifstream f("transport.in");
	ofstream g("transport.out");
	int maxim=0, li,ls,suma,i;
    f>>n>>k; 
    for(i=1; i<=n; i++)
    {
        f>>v[i];
        if(v[i]>maxim)
            maxim = v[i];
		 suma+=v[i];
    } 
    li=maxim;
    ls=suma;
    g<<cautare(li,ls);
	f.close();
	g.close();
}