Cod sursa(job #1960008)

Utilizator pionierul22aNa LiZa pionierul22 Data 10 aprilie 2017 09:37:21
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[100];
int n;
int main()
{
    int k;
    fin>>n>>k;
    int i,maxi=0,s=0;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        if(maxi<v[i])
            maxi=v[i];
        s+=v[i];
    }

    int st=maxi;
    int dr=s;
    int a=9;
    int mijl;
    while(st<=dr)
    {
         mijl=(st+dr)/2;
        int cm=mijl;
        int ct=1;
        for(i=1;i<=n;i++)
            if(mijl-v[i]>=0)
        mijl=mijl-v[i];
        else
        {
            ct++;
            mijl=cm;
            mijl=mijl-v[i];
        }

        if(ct>k)
        st=cm+1;
        else
        {

            a=cm;
            dr=cm-1;
        }
    }

    fout<<a;

    return 0;
}