Pagini recente » Cod sursa (job #143725) | Cod sursa (job #1369031) | Cod sursa (job #1629285) | Cod sursa (job #1352718) | Cod sursa (job #1989656)
#include <stdio.h>
#include <iostream>
using namespace std;
int d[100001];
struct oaoa{ int a,b;};
oaoa v[1001];
int main(){
FILE *fin,*fout;
fin=fopen("energii.in","r");
fout=fopen("energii.out","w");
int n,g,x,y,poz,i,j,w ;
fscanf(fin,"%d%d",&n,&w);
g=0;
for(i=1;i<=n;i++){
fscanf(fin,"%d%d",&v[i].a,&v[i].b);
g+=v[i].b;
}
for(j=1;j<=n;j++){
x=v[j].b;
y=v[j].a;
for(i=g-x;i>=1;i--)
if(d[i]!=0)
if(d[i+x]<d[i]+y)
d[i+x]=d[i]+y;
if(d[x]<y)
d[x]=y;
}
for(i=1;i<=g;i++)
if(d[i]>=w){
poz=i;
i=g+1;
}
fprintf(fout,"%d",poz);
fclose(fin);
fclose(fout);
return 0;
}