Cod sursa(job #1172389)

Utilizator andreey_047Andrei Maxim andreey_047 Data 17 aprilie 2014 14:05:46
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;
int p[1007],c[5007],pr[5007],cur[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++) pr[i]=1000000;

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

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