Cod sursa(job #1061385)

Utilizator VisanCosminVisan Tudor Cosmin VisanCosmin Data 19 decembrie 2013 18:06:47
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
unsigned long w,g,i,j,a[100],p[100],mat[100][100];
unsigned mic(int a,int b)
{
    if(a<b) return a;
        else return b;
}
int main()
{
    int inf=9999999;
    FILE*f;
    f=fopen("energii.in","r");
    fscanf(f,"%u%u",&g,&w);
    for(i=0;i<g;i++)
        fscanf(f,"%u%u",&a[i],&p[i]);
    fclose(f);
    for(i=0;i<=g;i++)
        for(j=1;j<=w;j++)
            mat[i][j]=inf;

    for(i=1;i<=g;i++)
        for(j=1;j<=w;j++)
            if(a[i]<=j) mat[i][j]=mic(p[i]+mat[i-1][j-p[i]],mat[i-1][j]);
                else mat[i][j]=mic(p[i],mat[i-1][j]);
    FILE*h;
    h=fopen("energii.out","w");
    if(mat[g][w]!=inf)
        fprintf(h,"%u",mat[g][w]);
        else fprintf(h,"%u",-1);
    fclose(h);
    printf("%u",mat[g][w]);




    return 0;
}