Cod sursa(job #3001860)
| Utilizator | Data | 13 martie 2023 23:09:30 | |
|---|---|---|---|
| Problema | Transport | Scor | 40 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.74 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int main()
{
int N, K, s = 0, d = 0, mid, w = 0, l = 0, it = 0;
fin>>N>>K;
int a[N];
for(int i = 0; i<N; i++){
fin>>a[i];
d+=a[i];
if(a[i]>s){
s = a[i];
}
}
while(s<d){
mid = (d+s)/2;
it = 0;
l = 0;
for(int i = 0; i<N; i++){
l+=a[i];
if(l+a[i+1]>mid){
it++;
l = 0;
}
}
cout<<it<<" "<<K<<endl;
if(it<=K){
d = mid-1;
cout<<d<<endl;
} else {
s = mid+1;
}
}
fout<<s;
return 0;
}
