Cod sursa(job #2207866)

Utilizator vladth11Vlad Haivas vladth11 Data 27 mai 2018 07:54:45
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16000];
int n,k,i;
bool verificare(int x){
    int sum = 0,cnt = 1;
    for(i = 0;i < n;i++){
        if(x < v[i])
            return false;
        if(sum + v[i] <= x){
            sum+=v[i];
        }else{
            sum = v[i];
            cnt++;
        }
    }
    if(cnt > k)
        return false;
    return true;
}
int main()
{
    cin >> n >> k;
    for(i = 0;i < n;i++){
        cin >> v[i];
    }
    int r = 0,pas = 1 << 30;
    while(pas){
        if(!verificare(r+pas))
            r+=pas;
        pas/=2;
    }
    cout << r+1;
    return 0;
}