Cod sursa(job #1020170)

Utilizator dan.ghitaDan Ghita dan.ghita Data 1 noiembrie 2013 19:17:47
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n, x, s, d, m, k, bun;
vector<int> v;
int mere(){
int camion=0, cnt=1;
for(int i=0; i<n; ++i){
if(camion+v[i]>m) camion=v[i], ++cnt;
else camion+=v[i];
//cout<<camion<<'\n';
}
//cout<<cnt<<"\n\n";
return k<=cnt;
}
int main()
{
f>>n>>k;
for(int i=0; i<n; ++i) f>>x, v.push_back(x), d+=x;;
while(s<d){
    m=(s+d)/2;
    if(mere()) bun=m, s=m+1;
    else d=m-1;
}
g<<bun;

    return 0;
}