Cod sursa(job #2081845)

Utilizator ilie0712Botosan Ilie ilie0712 Data 5 decembrie 2017 11:13:37
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int v[16001];
int n;
const int L=27;
bool sepoate(int r, int k)
{
    int e=0, cc=0;
    for(int i=1; i<=n; ++i)
    {
     if(v[i]>cc)
     {
      ++e;
      cc=r;
     }
     if(v[i]>cc) return false;
     if(e>k) return false;
     cc-=v[i];
    }
    return true;


}
int main()
{
    int k;
    cin>>n>>k;
    int pas=1<<L;
    int r=0;
    for(int i=1; i<=n; ++i) cin>>v[i];

    while(pas!=0)
    {
        if(sepoate(r+pas,k)==0 )
            r+=pas;
        pas/=2;
    }
    ++r;
    cout<<r;
    return 0;
}