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!