Cod sursa(job #2080218)

Utilizator madalin98Gherghe Madalin madalin98 Data 2 decembrie 2017 16:31:02
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int k,v[20000],n;
int verific(int x)
{
    int tr=1,m=v[1],i;
    for(i=2;i<=n;++i)
        {if(m+v[i]>x){++tr;m=v[i];}
          else m+=v[i];
        if(tr>k)return 0;}
    return 1;
}
void caut(int st,int dr,int &m)
{
    m=(st+dr)/2;
    if(verific(m)==0)caut(st,m-1,m);
}
int main()
{
    int i,ok,s=0,maxx=0,tr,m;
    f>>n>>k;
    for(i=1;i<=n;++i)
    {
        f>>v[i];
        if(v[i]>maxx)maxx=v[i];
        s+=v[i];
    }
    caut(maxx,s,m);
    while(verific(m))--m;
    g<<m+1;
    return 0;
}