Cod sursa(job #1274097)

Utilizator DavidDragulinDragulin David DavidDragulin Data 23 noiembrie 2014 12:19:08
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 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++)
            {

                    if(s+a[i]>cop)
            {
                nrt++;
                s=a[i];
            }
            else
                s+=a[i];
            }
              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];
    }
    while(c1<=c2)
    {
                mij=(c1+c2)/2;
                nr=check(mij);
                if(nr>k)
                {
                            c1=mij+1;
                }
                else if(nr<k)
            {
                c2=mij-1;
                if(minn>mij)minn=mij;
            }
                 else{  minn=mij;c2=mij-1;}
    }
    fout<<minn;
    return 0;
}