Cod sursa(job #1990064)

Utilizator stef2003Bud Stefan stef2003 Data 10 iunie 2017 13:07:30
Problema Energii Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int v[15001];
int main() {
  FILE *fin, *fout;
  int n, w, c, e, i, j;
  fin=fopen("energii.in","r");
  fout=fopen("energii.out","w");
  fscanf(fin, "%d%d",&n,&w);
  for(i=1;i<=n;i++) {
    fscanf(fin, "%d%d",&e,&c);
    for(j=w;j>=0;j--)
      if(v[j]!=0)
        if(v[j+e]!=0)
          v[j+e]=min(v[j]+c,v[j+e]);
        else
          v[j+e]=v[j]+c;
    if(c<v[e] || v[e]==0)
      v[e]=c;
  }
  c=2000000000;
  for(i=w;i<=w+10000;i++)
    if(v[i]<c && v[i]!=0)
      c=v[i];
  if(c!=20000000000)
    fprintf(fout, "%d",c);
  else
    fprintf(fout, "-1");
  fclose( fin );
  fclose( fout );
  return 0;
}