Cod sursa(job #2040962)

Utilizator alisavaAlin Sava alisava Data 16 octombrie 2017 18:57:11
Problema Transport Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

int n,k,a[16005];

ifstream fin("transport.in");
ofstream fout("transport.out");

void Citire()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        fin>>a[i];
    }
}
bool Verific(int x)
{
    int s=0,nr=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]>x) return false;
        if(s+a[i]<=x) s=s+a[i];
        else {s=a[i];nr++;}
    }

    return nr<k;
}
int Caut_Binar()
{
    int st=1,mij,sol=16000;
    int fn=16000;
    while(st<=fn)
    {
        mij=(st+fn)/2;
        if(Verific(mij)) {sol=mij;fn=mij-1;}
        else st=mij+1;
    }
    return sol;
}

int main()
{
    Citire();
    fout<<Caut_Binar()<<"\n";






    return 0;
}