Cod sursa(job #2156082)

Utilizator radugnnGone Radu Mihnea radugnn Data 8 martie 2018 14:16:49
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,k,st,dr,suma,maxim,v[16005],tr,c,cc,i;
int main()
{
   fin>>n>>k;
   for(i=1;i<=n;i++){
    fin>>v[i];
    suma+=v[i];
    if(v[i]>maxim)
        maxim=v[i];
   }
   st=maxim;
   dr=suma;
   while(st<=dr){
    c=(st+dr)/2;
    cc=c-v[1];
    tr=1;
    for(i=2;i<=n;i++)
        if(cc>=v[i])
        cc-=v[i];
        else{
            tr++;
            cc=c-v[i];
        }
        if(tr>k)
            st=c+1;
        else
            dr=c-1;
   }
   fout<<st;
    return 0;
}