fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int stL[100], stC[100], stM[100], d[100][100], n, i, j, k, v, valid, succ, sol;
  6. cin>>n>>stL[1]>>stC[1];
  7. for(i=1; i<=n; i++)
  8. for(j=1; j<=n; j++)
  9. cin>>d[i][j];
  10. cout<<endl<<"MATRICEA"<<endl;
  11. for(i=1; i<=n; i++)
  12. {
  13. for(j=1; j<=n; j++)
  14. cout<<d[i][j]<<" ";
  15. cout<<endl;
  16.  
  17. }
  18. k=2; stM[k]=0;
  19. while(k>1)
  20. {
  21. do {
  22. i=stL[k-1];
  23. j=stC[k-1];
  24. succ=0;
  25. valid=1;
  26. v=stM[k]+1;
  27. if(i>0 && i<=n && j>0 && j<=n)
  28. succ=1;
  29. if(succ==2)
  30. {
  31. if(v==1)
  32. {
  33. if(d[i][j+1]<d[i][j] && j<=n)
  34. {
  35. stL[k]=i;
  36. stC[k]=j+1;
  37. } else valid=0;
  38. stM[k]=v;
  39. } else if(v==2)
  40. {
  41. if(d[i][j-1]<d[i][j] && j>0)
  42. {
  43. stL[k]=i;
  44. stC[k]=j-1;
  45. } else valid=0;
  46. stM[k]=v;
  47. } else if(v==3)
  48. {
  49. if(d[i+1][j]<d[i][j] && i<=n)
  50. {
  51. stL[k]=i+1;
  52. stC[k]=j;
  53. } else valid=0;
  54. stM[k]=v;
  55. } else if(v==4)
  56. {
  57. if(d[i-1][j]<d[i][j] && i>0)
  58. {
  59. stL[k]=i-1;
  60. stC[k]=j;
  61. }else sol=1;
  62. stM[k]=v;
  63. } else if (v==5) k--;
  64. }
  65.  
  66. } while(succ==1 && valid==0);
  67.  
  68. if(succ==1)
  69. {
  70. if(d[stL[k]][stC[k]]==0)
  71. {
  72. for(i=1; i<=k; i++)
  73. {
  74. cout<<stL[i]<<","<<stC[i];
  75. if(i<k) cout<<" --> ";
  76. }
  77. cout<<endl;
  78. } else k++;
  79. }
  80.  
  81. }
  82. }
Time limit exceeded #stdin #stdout 5s 3300KB
stdin
Standard input is empty
stdout
MATRICEA