Cod sursa(job #2326572)

Utilizator NoemikulcsarKulcsar Noemi Noemikulcsar Data 23 ianuarie 2019 17:56:04
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int d[1005][5005];
pair <int, int> v[1005];
int main()
{
    int n, m;
    in >> n >> m;
    for(int i = 1; i <= n; i ++)
        in >> v[i].first >> v[i].second;
    for(int i = 0; i <= n; i ++)
        for(int j = 0; j <= m; j ++)
            d[i][j] = (1 << 30);
    for(int i = 1; i <= n; i ++)
    {
        for(int j = 1; j <= m; j ++)
        {
            if(j - v[i].first <= 0)
                d[i][j] = min(d[i - 1][j], v[i].second);
            else
                d[i][j] = min(d[i - 1][j], d[i - 1][j - v[i].first] + v[i].second);
        }
    }
    if(d[n][m] == (1 << 30))
        out << "-1";
    else
        out << d[n][m];
    return 0;
}