Pagini recente » Cod sursa (job #144507) | Cod sursa (job #3123440) | Profil dausyana | Monitorul de evaluare | Cod sursa (job #2177744)
#include <fstream>
#include <algorithm>
using namespace std;
int v[16005],n,ma=-1;
int verif(int x)
{ int s=0,k=0;
for(int i=1;i<=n;i++)
{
if(s+v[i]<=x)
{
s+=v[i];
}
else
{
s=0;
k++;
}
}
if(k<x)
return 1;
if(k==x)
return 0;
return -1;
}
int main()
{ ifstream cin("transport.in");
ofstream cout("transport.out");
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>v[i];
if(v[i]>ma)
ma=v[i];
}
int c,st=1,dr=ma,t;
while(st<=dr)
{
c=(st+dr)/2;
if(verif(c)==-1)
dr=c-1;
else
if(verif(c)==0)
{
st=c+1;
t=c;
}
else
st=c+1;
}
cout<<t;
return 0;
}