Cod sursa(job #1993245)

Utilizator 34GL3Garban Alexandru 34GL3 Data 22 iunie 2017 16:25:21
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
using namespace std;
int main()
{
    ifstream read("transport.in");
    ofstream write("transport.out");
    int N,K,r=0,temp=0,ok=-1,trans=0,crash=1,mijl;
    int c=256000000;
    int dreapta=256000000,stanga=0;
    read>>N>>K;
    int v[N+1];
    for(int i=1;i<N+1;++i)
    {
        read>>v[i];
        if(v[i]>stanga)
        {
            stanga=v[i];
        }
    }
while(stanga<=dreapta)
{

    mijl=(stanga+dreapta)/2;
    temp=0;
    trans=0;
    for(int j=1;j<N+1;++j)
    {
        if(temp+v[j]<=mijl)
        {
            temp=temp+v[j];
        }
        else
        {
            trans=trans+1;
            temp=v[j];
        }
    }
    trans=trans+1;
    if(trans<=K)
    {
        dreapta=mijl-1;
        ok=mijl;
    }
    else
    {
        stanga=mijl+1;
    }
}
write<<ok;
}