Cod sursa(job #2079593)

Utilizator CryshanaGanea Carina Cryshana Data 1 decembrie 2017 16:18:40
Problema Transport Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
const int N=16001;
int n;
int v[N];

int caut_bin( int i, int x)
{
    int pas, r=i;
    pas=1<<13;
    while(pas!=0)
    {
        if(r+pas<=n&&v[r+pas]-v[i-1]<=x)
            r+=pas;
        pas/=2;
    }
    return r;
}

int main()
{
    ifstream fin("transport.in") ;
    ofstream fout("transport.out");
    int k,maxim=0;
    fin>>n>>k;
    for(int i=1; i<=n; i++)
    {
        fin>>v[i];
        if(maxim<v[i]) maxim=v[i];
        v[i]+=v[i-1];
    }
    int s=(v[n]/k),d=0;
    if(s<maxim)
        s=maxim;
            for(int i=1; i<=n; i++)
        {
                i=caut_bin(i,s);
                d++;
                if(d>k)
                    {
                    i=0;
                    s++;
                    d=0;
                    }
        }
fout<<s;
    return 0;
}