Pagini recente » Cod sursa (job #884200) | Cod sursa (job #561303) | Cod sursa (job #1876607) | Cod sursa (job #3004047) | Cod sursa (job #951615)
Cod sursa(job #951615)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int trs(int,int,int,vector<int>&);
int main()
{
int n,k;
vector<int> v;
f>>n>>k;
for(int i=0;i<n;i++){
int x;
f>>x;
v.push_back(x);
}
int mx=0;
while(!(trs(n,mx+1,k,v)&&!trs(n,mx,k,v))){
int ax=1;
while(!trs(n,mx+ax,k,v))
ax*=2;
mx+=ax/2;
}
g<<mx+1;
return 0;
}
int trs(int n,int mx,int k,vector<int>& v)
{
int nr=0,cn=0;
for(int i=0;i<n;++i){
if(v[i]>mx)
return 0;
if(cn+v[i]<=mx)
cn+=v[i];
else{
nr++;
cn=v[i];
}
}
if(nr<k)
return 1;
else
return 0;
}