Cod sursa(job #1669991)

Utilizator alexburdescuBurdescu Alexandru alexburdescu Data 31 martie 2016 12:43:17
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int a[16001],N,K,nrmax,i,z,S,r,zmin,p1,p2,mij;
void suma()
{
    S=0;
    r=1;
    for(i=1;i<=N;i++)
    {
        S=S+a[i];
        if(S>z)
        {
            S=a[i];
            r++;
        }
    }
}
int main ()
{
    fin>>N>>K;
    nrmax=0;
    for(i=1;i<=N;i++)
    {
        fin>>a[i];
        if(a[i]>nrmax)
        {
            nrmax=a[i];
        }
    }
    p1=nrmax;
    p2=256000001;
    while(p1<=p2)
    {
        mij=(p1+p2)/2;
        z=mij;
        suma();
        if(r<=K)
        {
            p2=mij-1;
        }
        else
        {
            p1=mij+1;
        }
    }
    fout<<p1;
    fin.close();
    fout.close();
    return 0;
}