Pagini recente » Cod sursa (job #2363978) | Cod sursa (job #1680758) | Cod sursa (job #1537080) | Cod sursa (job #1049332) | Cod sursa (job #608632)
Cod sursa(job #608632)
#include<stdio.h>
#define MaxG 10100
int A[MaxG];
int Viz[MaxG] = {1};
int N;
int G;
void citire(void)
{
int a,b;
FILE *f = fopen("rucsac.in","r");
fscanf(f,"%d %d",&N,&G);
for(int i=1;i<=N;i++)
{
fscanf(f,"%d %d",&a,&b);
for(int j=G-a;j>-1;j--)
if(Viz[j] && (!Viz[j+a] || A[j+a] < A[j] + b))
{
Viz[j+a] = 1;
A[j+a] = A[j] + b;
}
}
fclose(f);
}
int FindMax(void)
{
int Max = -1;
for(int i=G;i;i--)
if(Max < A[i])
Max = A[i];
return Max;
}
int main()
{
FILE *g = fopen("rucsac.out","w");
citire();
fprintf(g,"%d",FindMax());
fclose(g);
return 0;
}