Cod sursa(job #2431122)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 18 iunie 2019 10:40:51
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#define min(A,B) (A>B)?(B):(A)
#define change(A) (A%2==1)?0:1

using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct ceva
{
    int cost,energie;
}a[1010];
int g,w;
int b[2][5010];
int main()
{
    fin>>g>>w;
    for(int i=1;i<=g;i++)
    {
        fin>>a[i].energie>>a[i].cost;
    }
    for(int i=1;i<=g;i++)
    {
        for(int j=0;j<=w;j++)
        {
            if(j>=w)b[i%2][j]=0;
            else if(i==1)b[i%2][j]=1000000000;
            else b[i%2][j]=min(a[i].cost+b[change(i)][min(j+a[i].energie,w)],b[change(i)][j]);
        }
    }
    if(b[g%2][0]==1000000000)fout<<-1;
    else fout<<b[g%2][0];
    return 0;
}