Cod sursa(job #1596644)

Utilizator PetruZZatic Petru PetruZ Data 11 februarie 2016 11:24:31
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
 
using namespace std;
 
ifstream cin ("transport.in");
ofstream cout ("transport.out");

int a[16002];
int n, k, s, mn, m, h;

bool pr(int l)
{
    int h=0, j=0;
    for (int i=0; i<n; i++)
        {
        h+=a[i];
        if (h>=l) h=a[i], j++;
    }
    return(j>=k);
}
int main ()
{
     
     
    cin >> n >> k;
 
    for (int i=0; i<n; i++)
    {
        cin >> a[i];
        s+=a[i];
        if (a[i]>mn) mn=a[i];
    }
 
    bool u;
    while(mn!=s)
    {
        u=false;
        m=(mn+s)/2;
        if(pr(m)) mn=m+1, u=true;
        else s=m; 
    }
    if (u) cout << mn-1;
    else cout << mn;
 
return 0;
}