Cod sursa(job #2480898)

Utilizator raduandreicaRadu Andreica raduandreica Data 26 octombrie 2019 10:58:12
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream fin("transport.in"); ofstream fout("transport.out");
int n,k;
vector<int> v;
int transp(int sz)
{
    int x=0 , nrt=1;
    for(int i=0 ; i<n ; i++)
    {
        x += v[i];
        if(x > sz)
        {
            nrt++;
            x = v[i];
        }
        if(nrt > k) return 0;
    }
    return 1;
}
int cautbin(int left , int right)
{
    int mid , ans=1000000000;
    while(left <= right)
    {
        mid=(right + left)/2;
        if(transp(mid)==0) left = mid+1;
        else
        {
            right = mid-1;
            ans = min(mid , ans);
        }
    }
    return ans;
}
int main()
{
    fin >> n >> k;
    for(int i=0 ; i<n ; i++)
    {
        int x;
        fin >>x;
        v.push_back(x);
    }
    fout << cautbin(1 ,1000000000);
    return 0;
}