Cod sursa(job #2080223)

Utilizator madalin98Gherghe Madalin madalin98 Data 2 decembrie 2017 16:45:07
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 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=(st+dr)/2;
    if(verific(m)==0)caut(m+1,dr);
       else if(verific(m-1))caut(st,m-1);
              else g<<m;
}
int main()
{
    int i,s=0,maxx=0;
    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);
    return 0;
}