#P1058. 三元组

三元组

题目描述

给定一个由 ‘X’或 ‘O’构成的 N×NN\times N 字母格。一个坐标位置可以表示为 (i,j)(i,j),表示第 ii 行第 jj 列,三个不同的坐标位置构成一个三元组。

Bob 想数数满足以下条件的三元组数量:

  1. 三个不同的坐标位置;
  2. 每个位置对应的字母为‘O’;
  3. 其中两个坐标位置同行;
  4. 其中两个坐标位置同列;

输入格式

第一行,一个整数 NN

接下来 N 行,每行 NN 个由 ‘X’和 ‘O’构成字符串

输出格式

一个整数,表示符合条件的三元组数量。

3
OOO
OXX
XXO
4

样例1解释

符合条件的三元组 :

  • (1,1),(1,2),(2,1)
  • (1,1),(1,3),(2,1)
  • (1,1),(1,3),(3,3)
  • (1,2),(1,3),(3,3)
4
OXXX
XOXX
XXOX
XXXO
0
15
XOOXXOOOOXXXOOX
OXXOXOXXXOXOXXO
OXXOXOXXXOXOXXX
OOOOXOOOOXXOXXX
OXXOXOXXXOXOXXX
OXXOXOXXXOXOXXO
OXXOXOOOOXXXOOX
XXXXXXXXXXXXXXX
XOOXXXOOXXXOOOX
OXXOXOXXOXOXXXO
XXXOXXXXOXOXXOO
XOOXXXOOXXOXOXO
XXXOXXXXOXOOXXO
OXXOXOXXOXOXXXO
XOOXXXOOXXXOOOX
2960

数据规模与约定

60%60\%的测试数据: 1n1001\leq n\leq 100

100%100\%的测试数据:1n20001\leq n\leq 2000