Cod sursa(job #1350075)

Utilizator turbowin120Amarandei-Stanescu Alexandru turbowin120 Data 20 februarie 2015 17:31:40
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <stdio.h>
using namespace std;
const int MAX=99999999;
struct generator{int c,p;}g[1002];
int n,k,sol[10005];

void citire(){
    FILE *in;
    in=fopen("energii.in","r");
    fscanf(in,"%d%d",&n,&k);
    for(int i=1;i<=n;i++) fscanf(in,"%d%d",&g[i].p,&g[i].c);


}

void rez(){
    for(int i=1;i<=2*k;i++) sol[i]=MAX;
    sol[0]=0;
    for(int i=1;i<=n;i++){
        for(int j=2*k-g[i].p;j>=0;j--){
            if(sol[j]!=MAX&&sol[j]+g[i].c<sol[j+g[i].p])
                sol[j+g[i].p]=sol[j]+g[i].c;
        }
    }



}

void afisare(){
    FILE*out;
    int minim=MAX;
    for(int i=1;i<=2*k;i++)
    if(sol[i]<minim&& i>=k && sol[i]!=MAX ){
        minim=sol[i];

    }
    out=fopen("energii.out","w");

    if(minim!=MAX) fprintf(out,"%d",minim);
    else fprintf(out,"%d",-1);

}

int main()
{
    citire();
    rez();
    afisare();
    return 0;
}