Cod sursa(job #2257072)

Utilizator jony666Nagy Huni jony666 Data 9 octombrie 2018 16:35:43
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>

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

int szimulal(int m)
{
    int h=1,c=0;
    for (int i=1; 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)==0)
        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);
    ki.close();
    return 0;
}