Cod sursa(job #1711624)

Utilizator minut1Baies Cosmin minut1 Data 31 mai 2016 20:06:13
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;

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

int n, v[16300];

int verif(int nr)
{
    int drum=0,sc=0,i;
    for(i=1; i<=n; i++)
    {
        sc+=v[i];
        if(sc==nr)
        {
            sc=0;
            drum++;
        }
        else if(sc>nr)
        {
            sc=v[i];
            drum++;
        }
    }
    if(sc!=0)
        drum++;
    return drum;
}

int main()
{
    int k,i,max=-1,nr,pas;
    cin>>n>>k;
    for(i=1; i<=n; i++)
    {
        cin>>v[i];
        if(v[i]>max)
            max=v[i];
    }
    nr=max-1;
    pas=1<<28;
    while(pas!=0)
    {
        if(verif(nr+pas)>k)
            nr+=pas;
        pas/=2;
    }
    cout<<nr+1;
    cin.close();
    cout.close();
    return 0;
}