比赛 2025暑期集训第6场 评测结果 AWWMMMMMMMMMMMM
题目名称 Equilateral Triangles 最终得分 7
用户昵称 惊世猴人 运行时间 10.831 s
代码语言 C++ 内存使用 301.63 MiB
提交时间 2025-07-12 11:30:19
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n;
unsigned long long ans;
char c[301][301];
vector<pair<int,int> >x,v[601];
inline int C(int a){
	return 1ll*a*(a-1)*(a-2)/6;
}
int main(){
	freopen("usaco_Feb_Triangles!.in","r",stdin);
	freopen("usaco_Feb_Triangles!.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			char c;
			cin>>c;
			if(c=='*')x.push_back(make_pair(i,j));
		}
	}
	for(int i=x.size()-1;i>=0;i--){
		for(int j=i-1;j>=0;j--){
			int d=abs(x[i].first-x[j].first)+abs(x[i].second-x[j].second);
			v[d].push_back(make_pair(i,j));
		}
	}
//	for(int i=1;i<=2*n;i++)v[i].sort();
	for(int i=1;i<=2*n;i++){
		ans+=C(v[i].size());
	}
	cout<<ans;
	fclose(stdin);
	fclose(stdout);
	return 0;
}