Cod sursa(job #1522083)

Utilizator bogdanalexandrescuFMI Bogdan Alexandrescu bogdanalexandrescu Data 11 noiembrie 2015 10:51:44
Problema Transport Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;

int verif(int a[],int n,int x,int k){
    int i,j;
    i=1;
    while(i<=n && k!=0){
            j=x;
        if(x<a[i])
            break;
        while(j>=a[i] && i<=n){
            j-=a[i];
            i++;
        }
        k--;
    }
    if(k>=0 && i==n+1)
        return 1;
    else return 0;
}


int main()
{
fstream f,g;
f.open("transport.in",ios::in);
g.open("transport.out",ios::out);
int n,a[16000],i,min,k,s=0,m,o,mid;
f>>n>>k;
for(i=1;i<=n;i++){
    f>>a[i];
    s+=a[i];
}
min=s;
m=1;
o=s;
while(m<o){
        mid=(m+o)/2;
        if(verif(a,n,mid,k)==1){
            if(mid<min)
                min=mid;
            o=mid-1;}
        else m=mid+1;
        }

g<<min;
}