Cod sursa(job #1037841)

Utilizator DyaStarDiana Boiangiu DyaStar Data 20 noiembrie 2013 19:48:31
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#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;
}