Cod sursa(job #1830269)

Utilizator PeraPera Alexandru Pera Data 16 decembrie 2016 14:58:59
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,MAX,S,i,V[16001],st,dr,mij,sum,sol,nr;
int main()
{fin>>n>>k;
MAX=0;
S=0;
for(i=1;i<=n;i++){
    fin>>V[i];
    S=S+V[i];
    if(V[i]>MAX)
       MAX=V[i]; }
st=MAX;
dr=S;
while(st<=dr){
      mij=(st+dr)/2;
      sum=0;
      nr=1;
      for(i=1;i<=n;i++)
          if(sum+V[i]<=mij)
             sum=sum+V[i];
          else{
             nr++;
             sum=V[i];}
      if(nr<=k){
         sol=mij;
         dr=mij-1;}
      else
         st=mij+1;}
fout<<sol;
return 0;}