Cod sursa(job #1072893)

Utilizator teodor98Teodor Sz teodor98 Data 5 ianuarie 2014 11:10:50
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
const int N=16001;
int v[N],k,n,c,l=1,p=1;
int maxim(int a,int b)
{
    if(a>b)
        return a;
    return b;
}
int cautbin(int x)
{
    /*int pas = 1<<14,sum=0, i=p-1;
    while(pas!=0)
    {
        if(i+pas<=n)
            sum+=v[i+pas];
        if(i+pas<=n&&(sum<=x))
        {
             i=pas;
            //out << i<<endl;
        }

        pas/=2;
    }
    */
    int i,sum=0;
    for(i=p;i<=n;i++)
    {
        sum+=v[i];

        if(sum>=c)
        {
        break;

        }

    }
    c = maxim(sum,c);
    return i;

}
int main()
{
    in >> n;
    in >> k;

    for(int i=1;i<=n;i++)
        in>>v[i];
    for(int i=1;i<=n;i++)
    {
        c = maxim(v[i], c);
    }

    while(l<=k)
    {
       int x = cautbin(c);
       if(x!=n)
       {
        l++;
       }

       p=x+1;

    }
    out << c;
    //-----------
    in.close();
    out.close();
    return 0;
}