using
System;
using
System.Collections.Generic;
public
class
GFG{
public
static
List<
int
> solve(
char
[,] Mat,
int
n)
{
if
(n == 1) {
List<
int
> abc =
new
List<
int
>();
abc.Add(1);
abc.Add(1);
return
abc;
}
if
(n == 2) {
List<
int
> abc =
new
List<
int
>();
abc.Add(-1);
abc.Add(-1);
return
abc;
}
if
(n == 3) {
if
(Mat[1,1] ==
'Q'
) {
if
(Mat[0,0] ==
'Q'
&& Mat[0,2] ==
'Q'
&& Mat[2,0] ==
'Q'
&& Mat[2,2] ==
'Q'
&& Mat[1,0] ==
'Q'
&& Mat[1,2] ==
'Q'
&& Mat[0,1] ==
'Q'
&& Mat[2,1] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(2);
abc.Add(2);
return
abc;
}
}
}
for
(
int
r = 0; r < n; r++) {
for
(
int
c = 0; c < n; c++) {
if
(r == 0 && c == 0) {
if
(Mat[r,c] ==
'Q'
&& Mat[r + 1,c] ==
'Q'
&& Mat[r,c + 1] ==
'Q'
&& Mat[r + 1,c + 1] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(r == 0 && c == (n - 1)) {
if
(Mat[r,c] ==
'Q'
&& Mat[r + 1,c] ==
'Q'
&& Mat[r,c - 1] ==
'Q'
&& Mat[r + 1,c - 1] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(r == (n - 1) && c == 0) {
if
(Mat[r,c] ==
'Q'
&& Mat[r - 1,c] ==
'Q'
&& Mat[r,c + 1] ==
'Q'
&& Mat[r - 1,c + 1] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(r == (n - 1) && c == (n - 1)) {
if
(Mat[r,c] ==
'Q'
&& Mat[r - 1,c] ==
'Q'
&& Mat[r,c - 1] ==
'Q'
&& Mat[r - 1,c - 1] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(c == 0) {
if
(Mat[r,c] ==
'Q'
&& Mat[r + 1,c] ==
'Q'
&& Mat[r - 1,c] ==
'Q'
&& Mat[r + 1,c + 1] ==
'Q'
&& Mat[r - 1,c + 1] ==
'Q'
&& Mat[r,c + 1] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(c == (n - 1)) {
if
(Mat[r,c] ==
'Q'
&& Mat[r + 1,c] ==
'Q'
&& Mat[r - 1,c] ==
'Q'
&& Mat[r + 1,c - 1] ==
'Q'
&& Mat[r - 1,c - 1] ==
'Q'
&& Mat[r,c - 1] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(r == 0) {
if
(Mat[r,c] ==
'Q'
&& Mat[r,c + 1] ==
'Q'
&& Mat[r,c - 1] ==
'Q'
&& Mat[r + 1,c + 1] ==
'Q'
&& Mat[r + 1,c - 1] ==
'Q'
&& Mat[r + 1,c] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(r == (n - 1)) {
if
(Mat[r,c] ==
'Q'
&& Mat[r,c + 1] ==
'Q'
&& Mat[r,c - 1] ==
'Q'
&& Mat[r - 1,c + 1] ==
'Q'
&& Mat[r - 1,c - 1] ==
'Q'
&& Mat[r - 1,c] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
if
(Mat[r,c] ==
'Q'
) {
if
(Mat[r - 1,c - 1] ==
'Q'
&& Mat[r - 1,c + 1] ==
'Q'
&& Mat[r + 1,c - 1] ==
'Q'
&& Mat[r + 1,c + 1] ==
'Q'
&& Mat[r,c - 1] ==
'Q'
&& Mat[r,c + 1] ==
'Q'
&& Mat[r - 1,c] ==
'Q'
&& Mat[r + 1,c] ==
'Q'
)
{
List<
int
> abc =
new
List<
int
>();
abc.Add(r + 1);
abc.Add(c+1);
return
abc;
}
}
}
}
List<
int
> a =
new
List<
int
>();
a.Add(-1);
a.Add(-1);
return
a;
}
static
public
void
Main (){
int
N = 3;
char
[,] v = { {
'Q'
,
'Q'
,
'Q'
},
{
'Q'
,
'Q'
,
'Q'
},
{
'Q'
,
'Q'
,
'Q'
} };
List<
int
> p =
new
List<
int
>();
p = solve(v, N);
Console.WriteLine(p[0]+
" "
+p[1]);
}
}