Language: C++

#include <bits/stdc++.h>
using namespace std;
#define null NULL
#define mp make_pair
#define pb(a) push_back(a)
#define sz(a) ((int)(a).size())
#define all(a) a.begin() , a.end()
#define fi first
#define se second
#define relaxMin(a , b) (a) = min((a),(b))
#define relaxMax(a , b) (a) = max((a),(b))
#define SQR(a) ((a)*(a))
#define PI 3.14159265358979323846
typedef vector<int> vi;
typedef pair<int,int> pii;
typedef long long ll;

int n, a, b;

char type[110][110];
int kill[110][110];
vector<pii> fo[110][110];
vector<pii> rfo[110][110];

vector<pii> start;

void Dfs(int x, int y){
  if(type[x][y] == 'W'){
    for(const auto& e : rfo[x][y]){
      ++kill[e.fi][e.se];
      if(kill[e.fi][e.se] >= sz(fo[e.fi][e.se])){
        if(type[e.fi][e.se] == '?'){
          type[e.fi][e.se] = 'L';
          Dfs(e.fi, e.se);
        }
      }
    }
  } else if(type[x][y] == 'L'){
    for(const auto& e : rfo[x][y]){
      if(type[e.fi][e.se] == '?'){
        type[e.fi][e.se] = 'W';
        Dfs(e.fi, e.se);
      }
    }
  }
}

int main(){
  memset(type, '?', sizeof type);

  cin >> n >> a >> b;

  for(int x = 1;x <= n;++x)
    for(int y = 1;y <= n;++y){
      if(x == y) continue;
      if(x + 1 <= n && x + 1 != y)
        fo[x][y].pb(mp(y, x + 1));
      if(x - 1 > 0 && x - 1 != y)
        fo[x][y].pb(mp(y, x - 1));
      if(sz(fo[x][y]) == 0){
        start.pb(mp(x, y));
        type[x][y] = 'L';
      }
    }

  for(int x = 1;x <= n;++x)
    for(int y = 1;y <= n;++y)
      for(const auto& e : fo[x][y])
        rfo[e.fi][e.se].pb(mp(x, y));

  for(const auto& e : start)
    Dfs(e.fi, e.se);

  if(type[a][b] == 'W') printf("Alice\n");
  else if(type[a][b] == 'L') printf("Borys\n");
  else printf("Draw\n");

  return 0;
}


Compiler output:
a.cc:21:18: error: 'int kill [110][110]' redeclared as different kind of entity
   21 | int kill[110][110];
      |                  ^
In file included from /usr/include/c++/14/csignal:42,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:116,
                 from a.cc:1:
/usr/include/signal.h:112:12: note: previous declaration 'int kill(__pid_t, int)'
  112 | extern int kill (__pid_t __pid, int __sig) __THROW;
      |            ^~~~
a.cc: In function 'void Dfs(int, int)':
a.cc:30:18: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   30 |       ++kill[e.fi][e.se];
      |                  ^
a.cc:30:24: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   30 |       ++kill[e.fi][e.se];
      |                        ^
a.cc:30:24: warning: ISO C++ forbids incrementing a pointer of type 'int (*)(__pid_t, int) noexcept' {aka 'int (*)(int, int) noexcept'} [-Wpointer-arith]
   30 |       ++kill[e.fi][e.se];
      |         ~~~~~~~~~~~~~~~^
a.cc:30:24: error: lvalue required as increment operand
   30 |       ++kill[e.fi][e.se];
      |                        ^
a.cc:31:19: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   31 |       if(kill[e.fi][e.se] >= sz(fo[e.fi][e.se])){
      |                   ^
a.cc:31:25: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   31 |       if(kill[e.fi][e.se] >= sz(fo[e.fi][e.se])){
      |                         ^
a.cc:31:27: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   31 |       if(kill[e.fi][e.se] >= sz(fo[e.fi][e.se])){
      |                           ^