Cod sursa(job #883617)

Utilizator mciprianmosincat ciprian mciprian Data 20 februarie 2013 10:46:32
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

int a[16000],n,k,i,m,p;

int cautare(int c,int d)

   {
        int m,s,r;
        bool ok;

        ok=false;
        if (c<=d)
        {
            m=(c+d)/2;s=0;r=0;

            for (i=1;i<=n;i++)
                {
                    s=s+a[i];
                    if (s>=m)
                    {
                        r++;s=a[i];
                    }
                }
             if (r<k) cautare(c,m-1);
                    else
                    if (r==k) return m;
                    else
                    cautare(m+1,d);
        }
    }

int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");


    f>>n>>k;

    m=0;
    for (i=1;i<=n;i++)
    {
        f>>a[i];
        if (a[i]>m) m=a[i];
        p=p+a[i];
    }
    g<<cautare (m,p);


    return 0;
}