Cod sursa(job #1365827)

Utilizator katakonst94Pirvu Constantin Catalin katakonst94 Data 28 februarie 2015 15:59:37
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
using namespace std;


int t[11000][2];
int mat[5001][5001];
ifstream f("energii.in");
ofstream h("energii.out");
int main()
{

    int n,g;
    f>>n;
    f>>g;
  //  cout<<n<<"  ";
    for(int i=1;i<=n;i++)
    {
        int j,k;
        f>>j;
        f>>k;
        t[i][0]=j;
        t[i][1]=k;
    }
    int d[1000];
for(int i=1;i<=n;i++)
{
    for(int j=1;j<=g;j++)
    mat[i][j]=99999999;
}
mat[0][0]=0;
    for(int i=1;i<=n;i++)
    {

        for(int j=g;j>=0;j--)
        {
            if(mat[i-1][j]!=99999999){
           if(j+t[i][0]>=g)
           {
               if(mat[i-1][j]+t[i][1]<mat[i-1][g])
               {

                 mat[i][g]= mat[i-1][j]+t[i][1];
               }


           }

           else
           {

             mat[i][j]=min(mat[i-1][j+t[i][0]]+t[i][1],mat[i-1][j]);
           }
        }
    }
    }
    if(mat[n][g]!=99999999)
h<<mat[n][g];
else
    h<<"-1";
    cout << "Hello world!" << endl;
    return 0;
}