Cod sursa(job #2362191)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 2 martie 2019 23:14:21
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int INF=10000007;
pair<int,int> a[1001];
int dp[2][5001];
int main(){
    int n,w,i,j;
    bool b=1;
    in>>n>>w;
    for(i=1; i<=n; ++i)
        in>>a[i].f>>a[i].s;
    for(i=0; i<=w; ++i)
        dp[0][i]=INF;
    for(i=1; i<=n; ++i, b=!b){
        for(j=0; j<=w; ++j){
            if(j>=a[i].f)
                dp[b][j]=min(dp[!b][j], dp[!b][j-a[i].f]+a[i].s);
            else dp[b][j]=min(dp[!b][j], a[i].s);
        }
    }
    out<<(dp[!b][w-1]==INF? -1 : dp[!b][w-1]);
    return 0;
}