Cod sursa(job #652675)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 25 decembrie 2011 20:18:44
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int m,st,dr,v[16005],i,n,k,q,qq;
int bun(int S){
    int C=0,P=0;
    if (S<qq) return 0;
    for(i=1;i<=n;i++)
    if (C+v[i]>S) P++,C=0;
    else C+=v[i];
    if (P<=k) return 1;
    return 0;}
void cautbin(){
    int st=1,dr=q;
    while (st<dr){
        m=(st+dr)/2;
    if (bun(m)==1) dr=m-1;
            else st=m+1;}}
int main(){
 f>>n>>k;
 for(i=1;i<=n;i++) f>>v[i],q+=v[i],qq=max(qq,v[i]);
 cautbin();
 g<<m<<'\n';
 f.close();
 g.close();
    return 0;}