Cod sursa(job #2541338)

Utilizator ivddabDabelea Ioana-Viviana ivddab Data 8 februarie 2020 12:37:36
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <algorithm>
#define NM 5006
#define oo 1000008
#define pir pair < int,int >
#define pt first
#define cst second
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,gr,i,s,j;
pir v[NM];
struct vectr{
   int vec[1003];
};
vectr a,b;
bool cmp( pir a, pir b ){
  if(a.pt!=b.pt) return a.pt<b.pt;
  return a.cst<b.cst;
}
int main()
{
    f>>n;
    f>>gr;
    for(i=1;i<=n;i++)
        { f>>v[i].pt>>v[i].cst; s+=v[i].pt; }

    if(s<gr) {
       g<<-1<<'\n'; return 0;
    }
   // sort(v+1,v+n+1,cmp);
    for(i=1;i<=gr;i++) a.vec[i]=oo;
    for(i=1;i<=n;i++){
      for(j=0;j<=gr;j++){
        if(j<v[i].pt) b.vec[j]=a.vec[j];
           else b.vec[j]=min(a.vec[j],a.vec[j-v[i].pt]+v[i].cst);
      }
      a=b;
    }
    if(b.vec[gr]!=oo) g<<b.vec[gr];
      else            g<<-1;
    return 0;
}