Cod sursa(job #2049004)

Utilizator DdariusDarius Ddarius Data 26 octombrie 2017 19:24:25
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>

using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");

int n, m, dp[1001+5001+5], p[1002], c[1002], i, j, s, cmin=INT_MAX;

void kappa()
{
    ///cout<<"Te-am memat";
}

int main()
{
    f>>n>>m;
    for(i=1; i<=n; i++)
    {
        f>>p[i]>>c[i];
        s+=p[i];
    }
    for(i=1; i<=1001+5001+5; i++)
    {
        dp[i]=2000000000;
    }
    if(s<m)
    {
        g<<-1;
        return 0;
    }
    for(i=1; i<=n; i++)
    {
        for(j=m; j>=1; j--)
        {
            dp[j]=min(dp[j-p[i]]+c[i], dp[j]);
        }
        for(j=p[i]; j>=1; j--)
        {
            dp[j]=min(dp[j], c[i]);
        }
    }
    if(dp[m]!=2000000000)
        cout<<dp[m];
    return 0;
}