Pagini recente » Cod sursa (job #2540385) | Atasamentele paginii Profil Popa_Iarina | Monitorul de evaluare | Cod sursa (job #3321641) | Cod sursa (job #3328334)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16061];
int n,k;
int Functie(int C){
int ans = 0;
int sum = 0;
for (int i=1;i<=n;++i){
if (v[i]>C) return 1e9;
if (sum+v[i]<=C) sum += v[i];
else{
ans++;
sum = v[i];
}
}
if (sum!=0) ans++;
return ans;
}
int CautBin_cu_pas(){ // cel mai mare C astfel incat sa ia mai mult de k costuri
int ans = 0;
for (int pas=(1<<20);pas>0;pas/=2){
int M = ans+pas; // M de la caut bin obisnuita ("Mijlocul")
int loc = Functie(M);
if (loc>k) ans += pas;
}
return ans;
}
int main()
{
fin >> n >> k;
for (int i=1;i<=n;++i){
fin >> v[i];
}
fout << CautBin_cu_pas()+1; // ca sa am C min care e bun
return 0;
}