Mai intai trebuie sa te autentifici.

Cod sursa(job #1718554)

Utilizator mariateguianiMaria Teguiani mariateguiani Data 18 iunie 2016 11:36:19
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,k,v[16001],L=27;

bool sepoate(int cap) //verif daca pot fi transportate saltelele cu un camion de capacitate cap in k transporturi
{
    int i,nr=0,c=0;
    for(i=1; i<=n; i++)
    {
        if(v[i]>cap)
            return false;
        if(v[i]>c)
        {
            nr++;
            c=cap;
        }
        c-=v[i];
    }
    return nr<=k;
}

void cautare() //cel mai mare c cu prop ca nu sunt suficiente k transporturi
{
    int pas=1<<L;
    int i=0;
    while(pas!=0)
    {
        if(!sepoate(i+pas))
            i+=pas;
        pas/=2;
    }
    fout<<i+1;
}

int main()
{
    int i;
    fin>>n>>k;
    for(i=1; i<=n; i++)
        fin>>v[i];
    cautare();
}