Pagini recente » Cod sursa (job #3004565) | Cod sursa (job #1894601) | Cod sursa (job #2244721) | Cod sursa (job #1225904) | Cod sursa (job #1200659)
#include<iostream>
#include<fstream>
#include<vector>
#define maxn 100005
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
vector <int> t;
int i,j,n,k,m,maxim,summax;
int val(int k)
{
int p=0,q=0;
i=0;
while(i<n)
{
p=0;
while(p+t[i]<=k&&i<n)
{
p+=t[i];
i++;
}
q++;
}
return q;
}
int caut(int i,int j)
{
int mij=(i+j)/2;
int w=val(mij);
if(w<=k)
{
if(i==j)return i;
else
return caut(i,mij);
}
else
if(w>k)return caut(mij+1,j);
}
int main()
{
f>>n>>k;
m=n;
maxim=summax=0;
while(m>0)
{
f>>i;
if(i>maxim)maxim=i;
t.push_back(i);
summax+=i;
m--;
}
g<<caut(maxim,summax);
g.close();
return 0;
}