Cod sursa(job #3230124)

Utilizator vladsoartavlad sofronea vladsoarta Data 19 mai 2024 12:21:02
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");

struct ceva{
int c,e;
}gen[1001];

unsigned int dp[2][10020],n,lim,i;

int main()
{
    cin>>n>>lim;
    for(i=1;i<=n;i++)
        cin>>gen[i].e>>gen[i].c;
    for(i=0;i<=1;i++)
        for(int curr_c=1;curr_c<=lim*2;curr_c++)
            dp[i][curr_c]=2e9;
    for(i=1;i<=n;i++)
    {
        for(int curr_c=1;curr_c<=lim*2;curr_c++)
        {
            dp[i%2][curr_c]=dp[(i-1)%2][curr_c];
            if(gen[i].c<=curr_c)
                dp[i%2][curr_c]=min(dp[i%2][curr_c],dp[(i-1)%2][curr_c-gen[i].c]+gen[i].e);
        }
    }
    int minim=2e9+1;
    for(i=lim;i<=2*lim;i++)
        if(dp[n%2][i]!=2e9)
            minim=min(dp[n%2][i],minim);
    cout<<minim;
    return 0;
}