Cod sursa(job #866773)

Utilizator OviTzu24Carabian Ovidiu OviTzu24 Data 28 ianuarie 2013 19:02:41
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;
int main(){
    int n,k,v[16010],i,j,l1=0,l2=0,m,nr,s,m2;
    ifstream f("transport.in");
    ofstream g("transport.out");
    f>>n>>k;
    for(i=1;i<=n;i++){
        f>>v[i];
        if(v[i]>l1)l1=v[i];
        l2=l2+v[i];
    }
    while(l1<=l2){
        m=(l1+l2)/2;
        nr=0;
        s=0;
        for(i=1;i<=n;i++){
            if(s+v[i]<=m)s=s+v[i];
               else {
                   nr++;
                   s=v[i];
               }
            }
        if(s!=0)nr++;
        cout<<l1<<" "<<l2<<" ";
        cout<<m<<" "<<nr<<endl;
        if(nr<=k){
            l2=m-1;
            m2=m;
        }
            else l1=m+1;
    }
    if(nr<=k)g<<m;
       else g<<m2;
    return 0;
}