1
Voici mon code. Il passe le testcase donné dans l'énoncé du problème. Lien pour le problème: http://www.spoj.com/problems/ACPC10D/ tri [i] [j] stocke la valeur min à atteindre à l'index (i, j) à partir de tri [0] [1].spoj ACPC10D -Pourquoi je reçois la mauvaise réponse?
//trigraphs-dp
#include<iostream>
#include<limits.h>
using namespace std;
int tri[1000000][3];
int min(int a,int b)
{
if(a<=b)
return a;
else
return b;
}
int main()
{
int n,t=1;
while(cin>>n)
{
if(n==0)
break;
for(int i=0;i<n;i++)
for(int j=0;j<3;j++)
cin>>tri[i][j];
tri[0][0]=INT_MAX;
tri[0][2]=tri[0][1]+tri[0][2];
//cout<<tri[0][2];
int a,b,c,d;
for(int i=1;i<n;i++)
for(int j=0;j<3;j++)
{
a=tri[i-1][j];
b=(j==2)?INT_MAX:tri[i-1][j+1];
c=(j==0)?INT_MAX:tri[i-1][j-1];
d=(j==0)?INT_MAX:tri[i][j-1];
tri[i][j]+=min(min(a,b),min(c,d));
}
cout<<t<<". "<<tri[n-1][1]<<"\n";
}
return 0;
}
Que diriez-vous de faire un test-sortie chaque fois que les valeurs sont mises à jour. Le problème est assez petit pour détecter dans quel pas quelque chose s'est mal passé en regardant tous les changements. – MrSmith42
S'il vous plaît commenter votre code et avoir son format reflètent sa structure. – greybeard