Cod sursa(job #1989656)

Utilizator ioana.jianuIoana Jianu ioana.jianu Data 8 iunie 2017 14:39:57
Problema Energii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <iostream>

using namespace std;

int d[100001];

struct oaoa{ int a,b;};
oaoa v[1001];

int main(){

    FILE *fin,*fout;
    fin=fopen("energii.in","r");
    fout=fopen("energii.out","w");

    int n,g,x,y,poz,i,j,w ;

    fscanf(fin,"%d%d",&n,&w);
    g=0;
    for(i=1;i<=n;i++){
        fscanf(fin,"%d%d",&v[i].a,&v[i].b);
        g+=v[i].b;
    }

    for(j=1;j<=n;j++){
        x=v[j].b;
        y=v[j].a;
        for(i=g-x;i>=1;i--)
            if(d[i]!=0)
                if(d[i+x]<d[i]+y)
                    d[i+x]=d[i]+y;
        if(d[x]<y)
            d[x]=y;
    }

    for(i=1;i<=g;i++)
        if(d[i]>=w){
            poz=i;
            i=g+1;
        }

    fprintf(fout,"%d",poz);
    fclose(fin);
    fclose(fout);
    return 0;
}