Cod sursa(job #2079571)

Utilizator CryshanaGanea Carina Cryshana Data 1 decembrie 2017 15:55:32
Problema Transport Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 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]/n)+1,d=16000;
    if(s<maxim) s=maxim;
    while(d>k)
    {
        d=0;
            for(int i=1; i<=n; i++)
        {
                i=caut_bin(i,s);
                d++;
        }
        s++;
    }
fout<<s-1;
    return 0;
}