Cod sursa(job #2076616)

Utilizator CryshanaGanea Carina Cryshana Data 26 noiembrie 2017 21:09:13
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 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<<20;
    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;
    fin>>n>>k;
    for(int i=1; i<=n; i++)
    {
        fin>>v[i];
        v[i]+=v[i-1];
    }
    int s=v[n]/n+1,j,d=16000;
    while(d>k)
    {
        d=0;
            for(int i=1; i<=n; i++)
        {
        j=caut_bin(i,s);
        if(j==i)
            {
                s++;
                i=1;
                d=0;
            }
        else
            {
                i=j;
                d++;
            }
        }
        s++;
    }
fout<<s;
    return 0;
}