Cod sursa(job #1783981)

Utilizator AronZekAron Jinga AronZek Data 19 octombrie 2016 17:35:19
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>

using namespace std;

int a[3][100001] , w[5010] , p[5010] , n , gg , k , j ;

void schimbare(){
                for (int i = gg ; i >= 0 ; i--)
                    a[1][i] = a[2][i] ;
}

int main(){
    ifstream fin("energii.in");
    ofstream fout("energii.out");

    fin >> n >> gg ;
        for(int i = 0 ; i <= gg ; i++)
            fin >> w[i] >> p[i] ;
        for(int i = 0 ; i<= gg ; i++){
                    a[1][i] = 10010 ;
                    a[2][i] = 10010 ;
        }
            for(int i =  0 ; i < n ; i++){
                for(int j = gg ; j>= 0 ; j--)
                    if(w[i] < j)
                        a[2][j] = min(a[1][j] , a[1][j-w[i]] + p[i]);
                        else a[2][j] = min(a[1][j] , p[i]);

                schimbare();
            }
        if(a[1][gg] != 10010)
            fout << a[1][gg];
                else fout << "-1";
return 0;
}