using
System;
using
System.Collections.Generic;
class
GFg {
const
int
R = 3;
const
int
C = 4;
static
int
magic(
int
a,
int
b,
int
c,
int
d,
int
e,
int
f,
int
g,
int
h,
int
i)
{
HashSet<
int
> s1 =
new
HashSet<
int
>() {
a, b, c, d, e, f, g, h, i
};
HashSet<
int
> s2 =
new
HashSet<
int
>() {
1, 2, 3, 4, 5, 6, 7, 8, 9
};
if
(s1.SetEquals(s2) && (a + b + c) == 15
&& (d + e + f) == 15 && (g + h + i) == 15
&& (a + d + g) == 15 && (b + e + h) == 15
&& (c + f + i) == 15 && (a + e + i) == 15
&& (c + e + g) == 15)
return
1;
return
0;
}
static
int
CountMagicSquare(
int
[, ] Grid)
{
int
ans = 0;
for
(
int
i = 0; i < R - 2; i++)
for
(
int
j = 0; j < C - 2; j++) {
if
(Grid[i + 1, j + 1] != 5)
continue
;
if
(magic(Grid[i, j], Grid[i, j + 1],
Grid[i, j + 2], Grid[i + 1, j],
Grid[i + 1, j + 1],
Grid[i + 1, j + 2],
Grid[i + 2, j],
Grid[i + 2, j + 1],
Grid[i + 2, j + 2])
!= 0)
ans += 1;
}
return
ans;
}
public
static
void
Main()
{
int
[, ] G = { { 4, 3, 8, 4 },
{ 9, 5, 1, 9 },
{ 2, 7, 6, 2 } };
Console.WriteLine(CountMagicSquare(G));
}
}