Pagini recente » Cod sursa (job #273807) | Istoria paginii runda/crrr3/clasament | Istoria paginii runda/ghdhgdsashgsthdr | Cod sursa (job #730198) | Cod sursa (job #1037841)
#include<fstream>
using namespace std;
struct stiva
{ int val;
stiva *next;
}*vf;
int k,n,c,dr;
void push(int a)
{if(vf==NULL)
{vf=new stiva;
vf->val=a;
vf->next=NULL;
}
else
{ stiva *nou;
nou=new stiva;
nou->val=a;
nou->next=vf;
vf=nou;
}
}
int divide(int li,int ls)
{int mij;
c=0;
dr=1;
if(li<ls)
{mij=(li+ls)/2;
stiva *p;
p=vf;
while(p)
{
if(c+p->val<=mij)
c=c+p->val;
else
{c=p->val;
dr++;
}
p=p->next;
}
if(dr>k)
divide(mij+1,ls);
else
divide(li,mij);
}
else
return li;
}
int main()
{int a,li=0;
ifstream f("transport.in");
ofstream g("transport.out");
f>>n;
f>>k;
for(int i=0;i<n;i++)
{f>>a;
if(a>li)
li=a;
push(a);
}
g<<divide(li,256000000);
g.close();
f.close();
return 0;
}