Cod sursa(job #1020166)

Utilizator dan.ghitaDan Ghita dan.ghita Data 1 noiembrie 2013 19:15:46
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 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, v[100];
//vector<int> v;
int mere(){
    //cout<<m<<" ";
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>>v[i], d+=v[i];;
while(s<d){
    m=(s+d)/2;
    if(mere()) s=m+1;
    else d=m-1;
}
g<<m;
//m=8; mere();
    return 0;
}