Cod sursa(job #2546343)

Utilizator Hey_HeyIacovlev Denis Hey_Hey Data 14 februarie 2020 09:02:23
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fi("energii.in");
ofstream fo("energii.out");

int dp[2][10002], n, W, lc=1, lp=0, i, j;
struct
{
    int e,c;
}V[5002];

int main()
{
	fi >> n >> W;
	
	for(i=1; i<=n; i++) fi >> V[i].e >> V[i].c;
	
	for(i=1; i<=W; i++) dp[0][i]=2e9, dp[1][i]=2e9;
	
	lc=1; lp=0;
	for(i=1; i<=n; i++, lc^=1, lp^=1)
	{
		for(j=1; j<=W; j++) 
		{
			if(V[i].e<=j) dp[lc][j]=min(dp[lp][j],dp[lp][j-V[i].e]+V[i].c);
			else dp[lc][j]=dp[lp][j];
			/*for(int a=0; a<=1; a++)
	        {
	        	for(int b=1; b<=W; b++)
	        	fo <<  setw(11) << dp[a][b];
	        	fo << '\n';
			}
			fo << '\n';*/
		}
	}
	fo<<dp[lp][W];
}