Advertisement
Guest User

Problema bila --- neterminata

a guest
Oct 16th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. ifstream fin("bila.in");
  5. ofstream fout("bila.out");
  6.  
  7. int a[21][21],n,m,nr,maxim;
  8.  
  9. bool valid(int lc, int cc, int val)
  10. {
  11. if(lc >= 1 && lc <= n && cc >= 1 && cc <= m)
  12. {
  13. return val > a[lc][cc];
  14. }
  15. return 0;
  16. }
  17. bool solutie(int lc, int cc)
  18. {
  19. return lc == 1 || lc == n || cc == 1 || cc == m;
  20. }
  21. void prelucrare_sol()
  22. {
  23. if(nr > maxim)
  24. maxim=nr;
  25. //nr++;
  26. }
  27. void backt(int lc, int cc)
  28. {
  29. int dl[4] = {-1,0,1,0};
  30. int dc[4] = {0,1,0,-1};
  31. for(int k=0; k<4; k++)
  32. {
  33. int val = a[lc][cc];
  34. lc = dl[k] + lc;
  35. cc = dc[k] + cc;
  36. if(valid(lc,cc,val))
  37. {
  38. nr++;
  39. if(solutie(lc,cc))
  40. prelucrare_sol();
  41.  
  42. else
  43. backt(lc,cc);
  44. }
  45. lc = lc - dl[k];
  46. cc = cc - dc[k];
  47.  
  48. }
  49. }
  50. int main()
  51. {
  52. int i_start,j_start;
  53. fin>>n>>m;
  54. for(int i=1; i<=n; i++)
  55. {
  56. for(int j=1; j<=m; j++)
  57. {
  58. fin>>a[i][j];
  59. }
  60. }
  61. fin>>i_start>>j_start;
  62.  
  63. backt(i_start,j_start);
  64.  
  65. fout<<nr;
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement