Pagini recente » Cod sursa (job #1327205) | Cod sursa (job #955193) | Cod sursa (job #3215386) | Cod sursa (job #503108) | Cod sursa (job #1020685)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16001],suma=0,s,i,mic=1;
short test(int x)
{int nr=1,sum=0;
for(i=0;i<n;i++)
{sum=sum+v[i];
if(sum>x)
{ nr++;
sum=v[i];
}
}
if(nr==k)
return 1;
if(nr>k)
return 2;
return 0;
}
void verif(int &s,int mini,int maxi)
{if(mini<=maxi)
{s=(mini+maxi)/2;
g<<"mini: "<<mini<<" maxi: "<<maxi<<" s: "<<s<<" test(s)= "<<test(s)<<'\n';
if(test(s)==2)
verif(s,s+1,maxi);
if(test(s)==0||test(s)==1)
verif(s,mini,s-1);
}
}
int main()
{f>>n>>k;
for(i=0;i<n;i++)
{f>>v[i];suma=suma+v[i];mic=max(mic,v[i]);}
g<<mic<<"bla"<<'\n';
verif(s,mic,suma);
g<<s;
f.close();g.close();
return 0;
}