Pagini recente » Cod sursa (job #423533) | Cod sursa (job #1314672) | Cod sursa (job #1889075) | Cod sursa (job #744784) | Cod sursa (job #1038271)
#include<fstream>
using namespace std;
int v[16001],k,n;
int verif(int p)
{
int k2=1,s=0;
for(int i=1;i<=n;i++)
if(s+v[i]<=p)s=s+v[i];
else {k2++;s=v[i];}
if(k2==k)return 0;
else if(k2<k)return -1;
else return 1;
}
int binara(int poz, int d, int pas)
{
if(pas==0)return poz;
if(poz+pas>d)return binara(poz,d,pas>>1);
int a=verif(poz+pas);
if(a==0){while(a==0){a=verif(--poz+pas);}
return poz+pas+1;}
else if(a==-1) return binara(poz,d,pas>>1);
else return binara(poz+pas,d,pas>>1);
}
int main()
{
ifstream fcin("transport.in");
ofstream fcout("transport.out");
int i,p=0;
fcin>>n>>k;
for(i=1;i<=28;i++)
for(p=1;p<=16000;p++)
n=n+k;
//for(i=1;i<=n;i++)
// {fcin>>v[i];v[0]=v[0]+v[i];if(v[i]>p)p=v[i];}
//fcout<<binara(p,v[0],1<<28)<<'\n';
return 0;
}