Cod sursa(job #1009127)

Utilizator felixiPuscasu Felix felixi Data 12 octombrie 2013 15:26:20
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
using namespace std;

int v[16002];

int verificare(int nr, int k,int n){
    int i=1,s=0,pok=0;
    for(i=1;i<=n;i++){
        s+=v[i];
        if(s>nr){
            pok++;
            s=v[i];
        }
    }

    if(pok>k) return 0;
    else return 1;
}



int main(){
    ifstream in("transport.in");
    ofstream out("transport.out");
    int i,s=0,p=0,k,n,mx=0,rasp=0;
    in>>n>>k;
    for(i=1;i<=n;i++){
        in>>v[i];
    }
    int stanga=1, dreapta=16000,  loc;
    while(dreapta-stanga>1){
        if(verificare((stanga+dreapta)/2, k, n)==0){
            stanga=(stanga+dreapta)/2;
        }
        else dreapta=(stanga+dreapta)/2;
    }
    out<<dreapta+1;
    in.close();
    out.close();
    return 0;
}