Cod sursa(job #2320100)

Utilizator cosmin1972Nour Mihai-Cosmin cosmin1972 Data 14 ianuarie 2019 11:09:29
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMAX=16007;
int v[NMAX];

int verif(int x,int n,int k)
{
    int c=0,i,sol=0;
    for(i=1; i<=n; i++)
    {
        if(v[i]<=c)
            c-=v[i];
        else
        {
            sol++;
            c=x-v[i];
        }
    }
    if(sol==k)
        return 1;
    else
        return 0;
}

int gen(int x)
{
    int i;
    for(i=1; i<=x; i*=2)
    {
    }
    return i/2;
}

int bin(int k,int v[NMAX],int n)
{
    int sol,step=gen(n);
    for(sol=1; step>=1; step/=2)
    {
        if(sol+step<=n && verif(sol+step,n,k)==1)
            {

                sol+=step;
            }
    }
    return sol-1;
}

int main()
{
    int n,k;
    in>>n>>k;
    for(int i=1; i<=n; i++)
    {
        in>>v[i];
    }
    out<<bin(k,v,NMAX);
    return 0;
}