Cod sursa(job #3356205)

Utilizator rosaaaRosa Elen S. rosaaa Data 30 mai 2026 12:59:19
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;

ifstream cin("energii.in");
ofstream cout("energii.out");

const int dim= 2e4;
const int nmax= 2e9;
int dp[dim+ 5]= {nmax};
pair <int, int> v[dim];

int main()
{
    int n, W, i, j;
    cin >> n>> W;

    for(i= 1;i <= n;i++){
		cin >> v[i].first>> v[i].second;
    }

    dp[0]= 0;
    for(i= 1;i <= dim;i++)
		dp[i]= nmax;
    for(i= 1;i <= n;i++){
		for(j= dim;j >= 0;j--){
			if(dp[j] < nmax and j+ v[i].first <= dim){
				int cost= dp[j]+ v[i].second;
				int unde= j+ v[i].first;
				if(dp[unde] > cost)
					dp[unde]= cost;
			}
		}

//		for(j= 0;j <= W* 5;j++)
//			cout << dp[j]<<" "; cout << endl;
    }

    int mini= nmax;
    for(i= W;i <= dim;i++)
		mini= min(mini, dp[i]);

	if(mini== nmax)cout << -1;
	else
    cout << mini;

    return 0;
}