Cod sursa(job #2446628)

Utilizator Rmrn56Maracine Mihail Robert Rmrn56 Data 9 august 2019 21:59:42
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int WMax = 10000, NMax = 1000, inf = 1000001;
int K[WMax + 5],e[NMax + 5],c[NMax + 5] ;
int min(int a,int b)
{
    if(a<=b)return a;
    else return b;
}
int main(){

int G,W;//G = nr generatoare, W = energie necesara
int i,j;
int s=inf; //solutia
fin>>G>>W;
int a,b,ii=1;
for( i = 1; i <= G; i++)
{
    fin>>a>>b;

    if(e[i]>W) 
    {
        s=min(s,c[i]);
    }
    else
    {
        e[ii]=a;
        c[ii]=b;
        ii = ii + 1;
    }
}

for(i=1;i <=WMax ;i++)
K[i]=inf;

for(i=1;i<=ii;i++)
{
    for(j=WMax;j>=e[i];j--)
    {
        K[j]=min(c[i]+K[j-e[i]],K[j]);
    }
}

for(i=W;i<=WMax;i++)
{
    s=min(s,K[i]);
}
if(s!=inf)
fout<<s;
else 
fout<<-1;
}