Cod sursa(job #697598)

Utilizator federerUAIC-Padurariu-Cristian federer Data 29 februarie 2012 10:05:35
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<cstdio>
#define Pmax 201
#define Nmax 501
#define INF 100000
#define min(a, b) ((a<b) ? a : b)
using namespace std;

int inc[Pmax][Pmax], i, j;
int N, P, K, D[Pmax], C[Pmax];
int best[Pmax][Nmax];

int main()
{
	int a, b;
	freopen("zmeu2.in", "r", stdin);
	freopen("zmeu2.out", "w", stdout);
	scanf("%d%d%d", &N, &P, &K);
	for(i=1;i<=P;++i)
		scanf("%d%d", &D[i], &C[i]);
	
	for(i=1;i<=K;++i)
	{
		scanf("%d%d", &a, &b);
		inc[a][b]=1;
	}
	for(i=0;i<=P;++i)
		for(j=0;j<=N;++j)
			best[i][j]=INF;
	best[1][C[1]]=D[1];
	for(i=2;i<=P;++i)
		for(j=1;j<=N;++j)
			if(C[i]<=j && best[i-1][j-C[i]]!=INF)
				best[i][j]=best[i-1][j-C[i]]+D[i];
		
	for(i=1;i<=N;++i)
		printf("%d ", best[P][i]);
	fclose(stdin);
	fclose(stdout);
	return 0;
}