Cod sursa(job #2471001)

Utilizator UllutzVlad Balteanu Ullutz Data 9 octombrie 2019 23:23:44
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<iostream>
int v[16001];
#include<stdio.h>
using namespace std;
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,i,nr,maxx,c;
long long s,p1,p2,s1,m,b;
cin>>n>>k;
s=0;
maxx=-1;
for(i=1;i<=n;i++){
cin>>nr;
v[i]=nr;
s=s+nr;
if(nr>maxx)
maxx=nr;
}
p1=maxx;
p2=s;
while(p1<=p2){
m=(p1+p2)/2;
c=0;
s1=0;
for(i=1;i<=n;i++){
s1=s1+v[i];
if(s1>m){
c++;
i--;
s1=0;
}
if(i==n&&s1<=m)
c++;
//cout<<i<<" "<<s1<<endl;
}
//cout<<m<<" "<<c<<endl;
b=m;
if(c>k)
p1=m+1;
if(c<=k)
p2=m-1;
}
cout<<b;
return 0;
}