Pagini recente » Cod sursa (job #1238182) | Cod sursa (job #2067262) | Cod sursa (job #2167839) | Cod sursa (job #1662474) | Cod sursa (job #1028098)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16000];
//n - nr saltele k - nr drumuri cerut
int transport(int k, int rez){
int t=0;
for(int i=1; i<=n; ++i){
if(t>rez) k--;
else t+=v[i];
}
return k;
}
int cauta (int x,int a,int b)
{
int m;
if (a<=b)
{
m=(a+b)/2;
if (v[m]==x) return m;
else
if (v[m]>x) cauta(x,a,m-1);
else cauta(x,m+1,b);
}
else return 0;
}
int main(){
f>>n>>k;
int maxim=0,st=0;
for(int i=1; i<=n; ++i){
f>>v[i];
if(v[i]>maxim) maxim = v[i];
st+=v[i];
}
if(transport(k,maxim)) {
g<<maxim+1;
return 0;
}
else for(int i=maxim+1; i<=st; i++){
if(transport(k,i)) {
g<<maxim+1;
return 0;
}
}
}