using
System;
class
GFG
{
static
int
[,] board =
new
int
[20,20];
static
int
countPairs(
int
N,
int
[,] bishops)
{
for
(
int
i = 0; i < bishops.GetLength(0); i++)
{
board[bishops[i,0], bishops[i,1]] = 1;
}
int
ans = 0;
for
(
int
s = 2; s <= 2 * N; s++)
{
int
cnt = 0;
for
(
int
i = 1, j = s - i;
Math.Max(i, j) <= Math.Min(N, s - 1) && i - j > 0; i++, j--)
{
if
(board[j,i - j] == 1)
cnt++;
}
if
(cnt > 1)
ans += ((cnt + 1) * cnt) / 2;
}
for
(
int
s = 2; s <= 2 * N; s++)
{
int
cnt = 0;
for
(
int
i = 1, j = s - i;
Math.Max(i, j) <= Math.Min(N, s - 1); i++, j--)
{
if
(board[i,N - j + 1] == 1)
cnt++;
}
if
(cnt > 1)
ans += ((cnt + 1) * cnt) / 2;
}
return
ans;
}
public
static
void
Main()
{
int
N = 10;
int
[,] bishops =
new
int
[5, 2]{{ 1, 1 }, { 1, 5 }, { 3, 3 }, { 5, 1 }, { 5, 5 }};
Console.Write(countPairs(N, bishops));
}
}