Cod sursa(job #1962348)

Utilizator ApostolIlieDanielApostol Daniel ApostolIlieDaniel Data 11 aprilie 2017 18:27:16
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;

int d[10010];

int main()
{
  FILE *fin, *fout;
  int n, s, a, b, i, j, ans=INT_MAX;
  fin = fopen ("energii.in", "r");
  fout = fopen ("energii.out", "w");
  fscanf (fin, "%d%d", &n, &s);
  for (i = 1;i <= 2 * s; i++)
    d[i] = 10000010;
  for(i = 1; i <= n; i++){
    fscanf (fin, "%d%d", &a, &b);
    for(j = s * 2; j >= a; j--)
      d[j] = min(d[j], d[j - a] + b);
  }
  for(i = s; i <= s*2; i++)
    if(d[i] != 10000010) {
      ans = min(ans, d[i]);
    }
  if(ans == INT_MAX)
    fprintf (fout, "-1");
  else
    fprintf (fout, "%d", ans);
  fclose (fin);
  fclose (fout);
  return 0;
}