Cod sursa(job #1273557)

Utilizator DavidDragulinDragulin David DavidDragulin Data 22 noiembrie 2014 17:39:07
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int i,n,a[16002],k,c1,c2,mij,nr,minn;
int check(int cop)
{
            int s=0,nrt=0;
            for(i=1;i<=n;i++)
            {
            s+=a[i];
                        if(s>cop)
                        {
                                    s=a[i];
                                    nrt++;
                        }
            }
              if(s)nrt++;
            return nrt;
}
int main()
{
    fin>>n>>k;
    for(i=1;i<=n;i++)
    {
                fin>>a[i];
                if(a[i]>c1)c1=a[i];
                c2+=a[i];
    }
    minn=c2;
    while(c1<=c2)
    {
                mij=(c1+c2)/2;
                nr=check(mij);
                if(nr>k)
                {
                            c1=mij+1;
                }
                else if(nr<k)c2=mij-1;
                 else if(minn>mij){minn=mij;c2=mij-1;}
    }
    fout<<minn;
    return 0;
}