Cod sursa(job #2257066)

Utilizator jony666Nagy Huni jony666 Data 9 octombrie 2018 16:32:19
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;
int t[16000],n,k;

int szimulal(int m)
{
    int h=1,c=t[1];
    for (int i=2; i<=n; i++)
    {
        if (m<=t[i]+c)
            c=c+t[i];
        else
        {
            h++;
            c=t[i];
        }
    }
    if (h<k)
        return 0;
    return 1;
}

int binaris(int a,int b,int x)
{
    if (a==b)
        return a;
    int t=(a+b)/2;
    if (szimulal(k)==1)
        return binaris(t+1,b,x);
    else
        return binaris(a,t,x);
}

int main()
{
    int i,m=0,h=0;
    ifstream be("transport.in");
    be>>n>>k;
    for (i=1; i<=n; i++)
        be>>t[i];
    be.close();
    for (i=1; i<=n; i++)
    {
        h=h+t[i];
        if (m<t[i])
            m=t[i];
    }
    ofstream ki("transport.out");
    ki<<binaris(m,h,(m+h)/2);
    //cout<<binaris(m,h,(m+h)/2);
    ki.close();
    return 0;
}