Cod sursa(job #1800736)

Utilizator mariastStoichitescu Maria mariast Data 7 noiembrie 2016 23:37:33
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
bool spt (long long x,long long n,long long a[16001],long long k){
    long long i=1,nr=1,s=0;
    while(i<=n){
        if(a[i]>x) return 0;
        if(s+a[i]<=x) s=s+a[i];
        else{
            nr++;
            s=a[i];
        }
        i++;
    }
    if(nr>k) return 0;
    else return 1;
}
long long s,n,k,a[16001],st,dr,i;
long long m,num;
int main()
{
    f>>n>>k;
    for(i=1;i<=n;i++){
        f>>a[i];
        s=s+a[i];
    }
    st=1;
    dr=s;
    while(st<=dr){
        m=(st+dr)/2;
        if(spt(m,n,a,k)){
            dr=m-1;
        }
        else st=m+1;
    }
    g<<dr+1;
}