Cod sursa(job #820607)

Utilizator Theorytheo .c Theory Data 21 noiembrie 2012 08:04:19
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#define inf 100000
#define nmax 100009
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");

struct produs{int p, e;};
produs T[5008];
int N, E;
int sum[nmax];
void read()
{
    fin >>N>>E;
    for(int i = 1; i <= N; i++)
        fin >>T[i].e >> T[i].p;
}

void solve()
{
    for(int i = 0 ;i <=nmax ; i++)
        sum[i] = -inf;
    sum[0] = 0;

    for(int i = 1; i <= N; i++)
    {
        for(int j = nmax - T[i].p - 1; j >= 0 ; --j)
        {
            if(sum[j] != -inf && sum[j + T[i].e] < sum[j] + T[i].p)
            sum[j + T[i].e] = sum[j] + T[i].p;
        }
    }



}
int main()
{
    read();
    solve();
    int p_max = inf;
    for(int i = E; i <= nmax - 1; i++)
        if(p_max > sum[i] && sum[i] != -inf)
            p_max = sum[i];
    fout << p_max <<'\n' ;

    fin.close();
    return 0;
}