Cod sursa(job #1871424)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 7 februarie 2017 13:04:37
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,m,v[100000],ok,st,dr,mid,i,k,t,x,alfa,maxim,s,c;
int main(){
    in>>n>>k;
    for( i = 1; i <= n; i ++ ){
        in >> v[i];
        if(v[i]>maxim){
            maxim=v[i];
        }
        s=s+v[i];
    }
    st=maxim;
    dr=s;
    while(st<=dr){
        mid=(st+dr)/2;
        x=1;
        c=0;
        for(i=1;i<=n;i++){
            if(c+v[i]<=mid){
                c=c+v[i];
            }
            else{
                c=v[i];
                x++;
            }
        }
        if(x>k){
            st=mid+1;
        }
        else{
            dr=mid-1;
        }
        
            alfa=st;
        
        
        
    }
    out<<alfa;
    
    
    
    
    
    return 0;
}