Cod sursa(job #2049174)

Utilizator ale.sicobeanAlexandra Sicobean ale.sicobean Data 26 octombrie 2017 21:59:07
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int a[1005][5005];
pair <int, int> v[1005];
int main()
{
    int g,w,i,j,d;
    fin>>g>>w;
    for(i=1;i<=g;i++)
    {
        fin>>v[i].first>>v[i].second;
    }
    sort(v+1,v+g+1);
    for(i=1;i<=g;i++)
    {
        for(j=1;j<=w;j++)
        {
            if(v[i].first>=j)
            {
                if(a[i-1][j]==0)
                    a[i][j]=v[i].second;
                else
                    a[i][j]=min(a[i-1][j],v[i].second);
            }
            else
            if(j<=v[i].first+v[i-1].first)
                if(a[i-1][j]==0)
                    a[i][j]=v[i].second+v[i-1].second;
                else
                    a[i][j]=min(a[i-1][j],v[i].second+v[i-1].second);
        }

    }
    if(a[g][w]==0)
        fout<<-1;
    else
        fout<<a[g][w];
    return 0;
}