Pagini recente » Cod sursa (job #2069581) | Cod sursa (job #1241) | Cod sursa (job #1721137) | Cod sursa (job #698339) | Cod sursa (job #2976572)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[30001];
int calculdezile(int n){
int i=1,s=0,j=1,day=0;
while(i<=n){
s=0;
j=i;
while(s<=n)
{
s+=v[j];
j++;
}
if(i==j-1)
return 0;
i=j-1;
day++;
}
return day;
}
int main()
{
int n,k,i,st,dr,m,x,vmax=-1,sum=0,rez=0;
fin>>n>>k;
for(i=1;i<=n;i++){
fin>>x;
v[i]=x;
sum+=x;
if(x>vmax)
vmax=x;
}
st=vmax;
dr=sum;
while(st<=dr){
m=(st+dr)/2;
x=calculdezile(m);
cout<<m<<' '<<x<<'\n';
if(x>k){
st=m+1;
}else if(x<=k){
dr=m-1;
rez=m;
}
}
fout<<rez;
return 0;
}