Cod sursa(job #440657)

Utilizator FrozeBara bum Froze Data 12 aprilie 2010 12:31:45
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 1.1 kb
#include <stdlib.h>
#include <stdio.h>

int min(int a,int b)    // aflare min
{
    return a < b ? a : b;
}

int m[100][3];
int n,h,u;

void read_m()  //citire normala din fisier
{
    FILE *file;
    file= fopen("gutui.in","r");
    int i,j;
    fscanf(file,"%d",&n);
    fscanf(file,"%d",&h);
    fscanf(file,"%d",&u);

    for(i=0;i<n;i++)
        fscanf(file,"%d %d",&m[i][0],&m[i][1]);

    close(file);

    for(i=0;i<n;i++)
        m[i][2]=0;

}


int GO(int inaltime,int gt)
{

    int i,j,g=gt,tmp;

    for(i=0;i<n;i++)
        if(inaltime+m[i][0]<=h)
            if(m[i][2]==0)
                {
                    m[i][2]=1;
                    tmp=GO(inaltime+u,gt+m[i][1]);
                    m[i][2]=0;
                    if(tmp>g)
                        g=tmp;
                }

    return g;

}

int main()
{
    read_m();
    FILE *file;
    file=fopen("gutui.out","w");
    fprintf(file,"%d",GO(0,0));
//    int i;
//    for(i=0;i<n;i++)
//        if(m[i][2]==1)
//            printf("%d",i);
//    printf("%d\n",GO(0,0));
//    for(i=0;i<n;i++)
//        if(m[i][2]==1)
//            printf("%d",i);

}