Cod sursa(job #1514755)

Utilizator cipistefan12Stefan Ciprian cipistefan12 Data 31 octombrie 2015 16:03:35
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");
int ok,maxim,k,k1,s,i,n,a[16100],suma,st,dr,mid;
int main()
{
    fin>>n>>k;
    for(i=1;i<=n;i++){
        fin>>a[i];
        suma=suma+a[i];
        if(a[i]>maxim)
            maxim=a[i];
    }
    st = maxim;
    dr = suma;
    while(st <= dr){

        mid = (st + dr)/2;
        s=0;k1=1;
        for(i=1;i<=n;i++){
            s=s+a[i];
            if(s>mid){
                k1++;
                s=a[i];
            }
        if(k1<=k)
            dr = mid - 1;
        else
            st = mid + 1;
        }
    }
    fout<<st;
    return 0;
}