Cod sursa(job #2332789)

Utilizator DenisaCantuCantu Denisa DenisaCantu Data 31 ianuarie 2019 11:27:35
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("transport.in");

int s, maxi=-1, n, i, k, v[160001];
int check(int val)
{int c=1, sum=0;
 for(i=1; i<=n; i++)
   {sum=sum+v[i];
   if(sum>val){c++; sum=v[i];}
   }
 if(c>k)return 0; else return 1;
 }
int cautbin()
{int st=maxi, dr=s;
int rasp=-1;
while(st<=dr)
  {int mij=(st+dr)/2;
  if(check(mij))
    {rasp=mij;
    dr=mij-1;
    }
 else
    st=mij+1;
  }
 return rasp;
}
int main()
{f>>n>>k;
for(i=1; i<=n; i++)
    {f>>v[i];
    maxi=max(maxi, v[i]);
    s=s+v[i];
    }
cout<< cautbin();
f.close();

    return 0;
}