Pagini recente » Istoria paginii runda/simulare-cartita-51a/clasament | Cod sursa (job #303440) | Cod sursa (job #1560979) | Cod sursa (job #2331168) | Cod sursa (job #1900290)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct obiect
{
int g,p,s;
}v[5001];
int n,G;
int mx;
int comp (obiect a,obiect b)
{
return (a.g < b.g);
}
void citire ()
{
int i;
f>>n>>G;
for (i=1;i<=n;i++)
f>>v[i].g>>v[i].p;
sort(v+1,v+n+1,comp);
//for (i=1;i<=n;i++)
//cout<<v[i].g<<" "<<v[i].p<<'\n';
}
void dinamica()
{
int i,j,greut=0;
for (i=1;i<=n;i++){
greut=0;
for (j=i;j<=n;j++){
greut+=v[j].g;
if (greut<=G){
v[i].s+=v[j].p;
if (v[i].s>mx)
mx=v[i].s;
}else break;
}
}
}
int main()
{
citire();
dinamica();
g<<mx;
}