[CF629A] Far Relative’s Birthday Cake
題目敘述
給你一個 $n\times n$ $(1\le n\le 100)$ 大小的棋盤蛋糕,其中某些標記為 C
的位置上頭有巧克力。
請你幫忙算算有多少組巧克力的兩兩配對,使得它們位於同一行或同一列。
題解
只要計算每一個行、和每一個列看得到多少巧克力即可,最後把他們加起來。
參考程式碼
// by tmt514
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <string>
#include <vector>
#define SZ(x) ((int)(x).size())
#define FOR(it, c) for(__typeof((c).begin()) it = (c).begin(); it != (c).end(); ++it)
using namespace std;
typedef long long LL;
int row[105], col[105];
char a[105][105];
int main(void) {
int n;
scanf("%d", &n);
for(int i=0;i<n;i++) scanf("%s", a[i]);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(a[i][j]=='C') {
++row[i];
++col[j];
}
int ans = 0;
for(int i=0;i<n;i++) ans += (row[i]*(row[i]-1))/2;
for(int i=0;i<n;i++) ans += (col[i]*(col[i]-1))/2;
printf("%d\n", ans);
return 0;
}