Pagini recente » Cod sursa (job #488623) | Cod sursa (job #44726) | Cod sursa (job #3246710) | Cod sursa (job #818572) | Cod sursa (job #2659122)
#include <iostream>
#include <stdio.h>
using namespace std;
struct alex{
int e,p;
}v[1002];
int suma[15003];
int main()
{
FILE *fin,*fout;
int G,W,pozmax,i,j,k;
fin=fopen("energii.in","r");
fout=fopen("energii.out","w");
fscanf(fin,"%d%d",&G,&W);
for(i=1;i<=G;i++){
fscanf(fin,"%d%d",&v[i].e,&v[i].p);
}
pozmax=v[1].e;
suma[v[1].e]=v[1].p;
for(i=2;i<=G;i++){
for(j=pozmax;j>=1;j--)
if(suma[j]>0)
suma[j+v[i].e]=suma[j]+v[i].p;
pozmax=v[i].e;
if(suma[v[i].e]>0){
if(suma[v[i].e]>v[i].p)
suma[v[i].e]=v[i].p;
}
else
suma[v[i].e]=v[i].p;
}
if(suma[W]>0)
fprintf(fout,"%d",suma[W]);
else{
k=0;
i=W;
while(k==0 && i<=pozmax){
if(suma[i]>0){
fprintf(fout,"%d",suma[i]);
k=1;
}
i++;
}
}
return 0;
}