Mai intai trebuie sa te autentifici.
Cod sursa(job #1277331)
Utilizator | Data | 27 noiembrie 2014 15:58:52 | |
---|---|---|---|
Problema | Transport | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <fstream>
using namespace std;
int n,k,c,i,v[16001],s,l1,l2,m;
bool verif(int s, int k, int n){
int i,suma,j=1;
suma=0;
for(i=1;i<=k;i++){
while(suma+v[j]<=s&&j<=n){
suma+=v[j];
j++;
}
suma=0;
}
if(j>n)
return 1;
else return 0;
}
int main(){
ifstream in("transport.in");
ofstream out("transport.out");
in>>n>>k;
for(i=1;i<=n;i++){
in>>v[i];
s+=v[i];
}
l1=1;
l2=s;
while(l1<=l2){
m=(l1+l2)/2;
if(verif(m,k,n)==1) l2=m-1;
else l1=m+1;
}
out<<m;
in.close();
out.close();
return 0;
}