Cod sursa(job #678495)

Utilizator andreimaresuMaresu Andrei andreimaresu Data 11 februarie 2012 20:34:06
Problema Energii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h>
#include<stdlib.h>
int main()
{
    FILE *f=fopen("energii.in","r"),*h=fopen("energii.out","w");
    int w,g,i,*a,*b,ok=1,aux,aux1,s=0,s1=0;
    fscanf(f,"%d%d",&g,&w);
    a=(int*)malloc(g*sizeof(int));
    b=(int*)malloc(g*sizeof(int));
    for(i=0;i<g;i++)
        fscanf(f,"%d %d",&a[i],&b[i]);
    while(ok)
    {
        ok=0;
        for(i=0;i<g-1;i++)
        if((a[i]>a[i+1]) || (a[i]==a[i+1] && b[i]>b[i+1])) {aux=a[i];a[i]=a[i+1];a[i+1]=aux;
                                                            aux1=b[i];b[i]=b[i+1];b[i+1]=aux1;
                                                            ok=1;
                                                            }
    }
    ok=1;i=g-1;
    while(ok){
        s+=a[i];
        s1+=b[i];
        if(s>=w) ok=0;
        i--;
            }
        fprintf(h,"%d",s1);
        return 0;
}