Pagini recente » Cod sursa (job #1967700) | Cod sursa (job #608787) | Cod sursa (job #1400999) | Cod sursa (job #915608) | Cod sursa (job #631603)
Cod sursa(job #631603)
#include<fstream>
using namespace std;
ofstream fout("rucsac.out");
int W[5010],g,n,P[5010];
void quick(int st,int dr);
void afis();
void citire();
void rez();
int main()
{
citire();
quick(1,n);
rez();
return 0;
}
void quick(int st,int dr)
{
if(st<dr)
{
int i=st,j=dr,d=0;
while(i<j)
{
if(P[i]<P[j])
{
int aux1=P[i];
P[i]=P[j];
P[j]=aux1;
int aux2=W[i];
W[i]=W[j];
W[j]=aux2;
d=1-d;
}
if(d==0)
j--;
else
i++;
}
quick(st,i-1);
quick(i+1,dr);
}
}
void afis()
{
for(int i=1;i<=n;i++)
fout<<W[i]<<" "<<P[i]<<" "<<endl;
}
void citire()
{
ifstream fin("rucsac.in");
fin>>n>>g;
for(int i=1;i<=n;i++)
fin>>W[i]>>P[i];
}
void rez()
{
int s=0;
int gg=g;
for(int i=1;i<=n&≫i++)
if(W[i]<=gg)
{
s+=P[i];
gg-=W[i];
}
fout<<s;
}