Mai intai trebuie sa te autentifici.
Cod sursa(job #2976554)
| Utilizator | Data | 9 februarie 2023 15:22:23 | |
|---|---|---|---|
| Problema | Transport | Scor | 20 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.89 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16001];
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;
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{
dr=m-1;
rez=m;
}
}
fout<<rez;
return 0;
}
