Cod sursa(job #1072899)

Utilizator teodor98Teodor Sz teodor98 Data 5 ianuarie 2014 11:49:40
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
const int N=16001;
int v[N],k,n,c,p=1,x;
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=0,sum=0;
    for(i=p;i<n;i++)
    {
        sum+=v[i];

        if(sum>=c)
        {
        break;

        }

    }
    //out <<p<<i<<endl;
    c = maxim(sum,c);
    return i;

}
int main()
{
    int sum;
    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);
    }

    for(int i=1;i<k;i++)
    {
        x = cautbin(c);

        p=x+1;



    }
    if(p!=n)
    {
        sum = 0;
        for(int i=p;i<=n;i++)
            sum+=v[i];
        c = maxim(sum,c);
    }
    out << c;
    //-----------
    in.close();
    out.close();
    return 0;
}