Cod sursa(job #1172383)

Utilizator andreey_047Andrei Maxim andreey_047 Data 17 aprilie 2014 13:56:46
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;
int p[1007],c[5007],dp[2][5007],n;
int main(){
    int i,j,g,q;
    ifstream fin("energii.in");
    ofstream fout("energii.out");
    fin>>n>>g;
    for(i=1;i<=n;i++)
     fin >>p[i]>>c[i];
    for(i=1;i<=g;i++) dp[1][i]=999999;

     for(i=1;i<=n;i++){
      for(j=1;j<=g;j++)
              if(p[i] >= j)
               dp[2][j]= min(c[i],dp[1][j]);
              else
               dp[2][j] = min(dp[1][j],dp[1][j-p[i]]+c[i]);
       for(q=1;q<=g;q++)
        dp[1][q]=dp[2][q];
    }
    if(dp[2][g] == 999999) fout<<"-1\n";
    else
     fout <<dp[2][g]<<"\n";

     fin.close();
     fout.close();
    return 0;
}