TEMA

Wrong answer (5%) em C

MarcelloScatena preguntado 3 years ago

Todos os testes que fiz deram certo, gostaria de saber aonde meu código falha.

#include <stdio.h>
int carga(int i, int capacidade, int resistencia, int poder[i], int peso[i],int deu, int memoria[i][capacidade]){
    if(deu) return 1;
    else{
        int r=0;
        if(memoria[i-1][capacidade]==0) return 0;
        else if(resistencia<=0 && capacidade>=0){
            r=1;
            deu=1;
        }
        else if(capacidade<=0 || i==0) r=0;
        else{
            r=(carga(i-1,capacidade-peso[i-1],resistencia-poder[i-1],poder,peso,deu,memoria) || carga(i-1,capacidade,resistencia,poder,peso,deu,memoria));
            memoria[i-1][capacidade]= r;
        }
        return r;
    }
}

int main()
{
    int c;
    scanf("%i", &c);
    for(int t=0;t<c;t++){
        int n;
        scanf("%i", &n);
        int poder[n];
        int peso[n];
        for(int j=0;j<n;j++)
            scanf("%i %i",&poder[j],&peso[j]);
        int capacidade;
        int resistencia;
        scanf("%i", &capacidade);
        scanf("%i", &resistencia);
        int memoria[n][capacidade];
        for(int k=0;k<n;k++){
            for(int l=0;l<capacidade+1;l++) memoria[k][l]=1;
        }
        if(carga(n,capacidade,resistencia,poder,peso,0,memoria)) printf("Missao completada com sucesso\n");
        else printf("Falha na missao\n");
    }
    return 0;
}

Este tema aún no ha sido contestado. ¡Sé el primero!

Recuerda no enviar soluciones. Tu mensaje puede ser revisado por nuestros moderadores.