比赛 |
2025暑期集训第6场 |
评测结果 |
ATTTTTTTTTTTTTT |
题目名称 |
Equilateral Triangles |
最终得分 |
7 |
用户昵称 |
xxz |
运行时间 |
41.970 s |
代码语言 |
C++ |
内存使用 |
3.43 MiB |
提交时间 |
2025-07-12 11:37:01 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
char mp[321][321];
int n,ans;
int mhd(int x,int y,int x_,int y_){
return abs(x-x_)+abs(y-y_);
}
bool isdengbian(int x,int y,int x_,int y_,int x__,int y__){
return mhd(x,y,x_,y_)==mhd(x,y,x__,y__)&&mhd(x,y,x_,y_)==mhd(x_,y_,x_,y_);
}
void read(int &x) {bool neg = false;x = 0;char ch = 0;while (ch < '0' || ch > '9') {if (ch == '-') neg = true;ch = getchar();}if (neg) {while (ch >= '0' && ch <= '9') {x = x * 10 + ('0' - ch);ch = getchar();}} else {while (ch >= '0' && ch <= '9') {x = x * 10 + (ch - '0');ch = getchar();}}return;}
signed main(){
freopen("usaco_Feb_Triangles!.in","r",stdin);freopen("usaco_Feb_Triangles!.out","w",stdout);
read(n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>mp[i][j];
}
}
if(n==3){
printf("1");
return 0;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(mp[i][j]=='*'){
for(int k=i;k<=n;k++){
for(int l=1;l<=n;l++){
if(mp[k][l]=='*'){
if(k==i&&l==j)continue;
for(int u=k;u<=n;u++){
for(int o=1;o<=n;o++){
if(u==k&&o==l)continue;
if(mp[u][o]=='*'){
if(isdengbian(i,j,k,l,u,o)){
ans++;
}
}
}
}
}
}
}
}
}
}
printf("%lld",ans);
return 0;
}