Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 14;
  5. int MaxCurrentPasses = 0;
  6. int PassCounter = 0;
  7. void Pass(int x, int y, vector < vector <int> > &CheckersField, int PassCounter)
  8. {
  9. x=x+2;
  10. y=y+2;
  11. if( CheckersField[x+1][y+1] == -1 && CheckersField[x+2][y+2] == 0)
  12. {
  13. PassCounter++;
  14. MaxCurrentPasses=max(MaxCurrentPasses,PassCounter);
  15. CheckersField[x+1][y+1] = 0;
  16. Pass(x+2,y+2,CheckersField,PassCounter);
  17. CheckersField[x+1][y+1]=-1;
  18. PassCounter--;
  19. }
  20. if(CheckersField[x+1][y-1] == -1 && CheckersField[x+2][y-2] == 0)
  21. {
  22. PassCounter++;
  23. MaxCurrentPasses=max(MaxCurrentPasses,PassCounter);
  24. CheckersField[x+1][y-1] = 0;
  25. Pass(x+2,y-2,CheckersField,PassCounter);
  26. CheckersField[x+1][y-1]=-1;
  27. PassCounter--;
  28. }
  29. if(CheckersField[x-1][y-1] == -1 && CheckersField[x-2][y-2] == 0)
  30. {
  31. PassCounter++;
  32. MaxCurrentPasses=max(MaxCurrentPasses,PassCounter);
  33. CheckersField[x-1][y-1] = 0;
  34. Pass(x-2,y-2,CheckersField,PassCounter);
  35. CheckersField[x-1][y-1]=-1;
  36. PassCounter--;
  37. }
  38. if(CheckersField[x-1][y+1] == -1 && CheckersField[x-2][y+2] == 0)
  39. {
  40. PassCounter++;
  41. MaxCurrentPasses=max(MaxCurrentPasses,PassCounter);
  42. CheckersField[x-1][y+1] = 0;
  43. Pass(x-2,y+2,CheckersField,PassCounter);
  44. CheckersField[x-1][y+1]=-1;
  45. PassCounter--;
  46. }
  47. }
  48. int main()
  49. {
  50. int Set;
  51. cin>>Set;
  52. while(Set--)
  53. {
  54. vector < vector <int> > CheckersField(N, vector<int>(N,-2));
  55. vector <pair <int, int> > WhitePawnCoOrdinates;
  56. for(int i=0; i<N-4; i++)
  57. {
  58. for(int j=0; j<N-4; j++)
  59. {
  60. char square;
  61. cin>>square;
  62. if(square == '.' || square == '#')
  63. CheckersField[i][j] = 0;
  64. if(square == 'W')
  65. {
  66. CheckersField[i][j] = 1;
  67. WhitePawnCoOrdinates.push_back(make_pair(i,j));
  68. }
  69. if(square == 'B')
  70. CheckersField[i][j] = -1;
  71. }
  72. }
  73.  
  74. for(int i=0; i<WhitePawnCoOrdinates.size(); i++)
  75. {
  76.  
  77. int x = WhitePawnCoOrdinates[i].first;
  78. int y = WhitePawnCoOrdinates[i].second;
  79. CheckersField[x+1][y+1] = 0;
  80. Pass(x+1,y+1, CheckersField,0);
  81. CheckersField[x+1][y+1] = 1;
  82.  
  83. }
  84. cout<<MaxCurrentPasses<<endl;
  85. MaxCurrentPasses = 0;
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement