Advertisement
Guest User

Untitled

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