Cod sursa(job #1711444)

Utilizator JavaAlexDinu Alexandru JavaAlex Data 31 mai 2016 11:37:43
Problema Transport Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>

using namespace std;

const unsigned int l = 13;
unsigned int N , K;
unsigned int v[16000];

bool functie(unsigned int para){
    unsigned int su = 0,i,t=1;
    for(i=0;i<N;i++){
        if (v[i] > para)
            return false;
        if(su+v[i] <= para)
            su += v[i];
        else {
            su = v[i];
            t++;
        }
    }
    return (t <= K)?true:false;
}
int main()
{
    unsigned int i, pas;
    ifstream r("transport.in");
    ofstream w("transport.out");

    r>>N>>K;
    for(i=0;i<N;i++)
        r>>v[i];
    r.close();
    pas = 1<<l;i=0;
    while(pas != 0){
        if(!functie(i+pas))
            i+=pas;
        pas /= 2;
    }
    w<<i+1;
    w.close();
    return 0;
}