Cod sursa(job #2862299)

Utilizator dobodobosan robert dobo Data 5 martie 2022 11:20:29
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
/*Pe prima linie a fisierului transport.in 
se afla numerele intregi N si K (separate printr-un spatiu).
Pe fiecare din urmatoarele N linii se afla un numar intreg,
reprezentand volumul unei saltele. Prima din aceste N linii contine
volumul saltelei din varful stivei, a doua linie contine volumul 
celei de-a doua saltele, etc.

Date de iesire
In fisierul transport.out veti afisa un singur numar intreg,
reprezentand capacitatea minima pe care trebuie sa o aiba camionul
pentru a putea transporta cele N saltele efectuand maxim K 
transporturi.*/


#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");


int v[16005],n,k;

bool verif(int c)
{
    int contor=0,s;
    for(int i=0;i<n;i++)
    {
        s=v[i];
        while(s<=c && i<n)
        {
            i++;
            s=s+v[i];
        }
        i--;
        contor++;
    }
    if(contor>k)
        return 0;
    return 1;
    
    
}

int main()
{
    int l=0, r=16000*16000,m;
    fin>>n>>k;
    for(int i=0;i<n;i++)
        fin>>v[i];
    while(l<r)
    {
        m=(l+r)/2;
        if(verif(m))
        {
            r=m;
        }
        else
        {
            l=m+1;
        }
        
    }
    fout<<l;
    
        
    return 0;
}