Cod sursa(job #766337)

Utilizator bratualexBratu Alexandru bratualex Data 11 iulie 2012 00:31:52
Problema Transport Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>

using namespace std;
ifstream fin("transport.in");

ofstream fout("transport.out");

int valid (int);

int a[16000],n,k;
int main()
{
    int i,sum=0,max=0,s=0,gata,nrt,j;
    fin>>n>>k;

    for (i=0;i<n;i++)
    {

        fin>>a[i];
        if ( a[i]>max )
            max=a[i];
        sum=sum+a[i];
    }
    nrt=k;

    gata=0;
    for(i=max;i<=sum&&!gata;i++)
    {
        if(valid (i))
            gata=1;
    }
    fout<<--i;

    fin.close();
    fout.close();
    return 0;
}

int valid (int i)
{
    int nrt,j,s;
    nrt=k;
    j=0;
    s=a[0];
    while(nrt&&j<n)
    {
        j++;
        if(s+a[j]>i)
        {
            nrt--;
            s=a[j];
                //j++;
        }
        else
            if ( s+a[j]<i)
            {
                s=s+a[j];
//              j++;
            }
            else
            {
                s=0;
  //            j++;
                nrt--;
            }
    }
    if (j==n)
        return 1;
    return 0;
}