20分求Hack
查看原帖
20分求Hack
579631
Colinxu2020楼主2022/9/24 12:31

代码:

#include<iostream>
#include<string>
using namespace std;

int n;
string inp[100+1];

int countlen1(int x, int y){
    int res=0,k=1;
    while(true){
        if(k>x || k>y || k>n-x-1 || k>n-y-1)break;
        if(inp[x-k][y-k]=='1'&&inp[x+k][y+k]=='1'&&inp[x-k][y+k]=='1'&&inp[x+k][y-k]=='1')res++;
        k++;
    }
    return res;
}

int countlen2(int x, int y){
    int res=0,k=1;
    while(true){
        if(k>x || k>y || k>n-x || k>n-y)break;
        if(inp[x-k][y-k]=='1'&&inp[x-k][y+k-1]=='1'&&inp[x+k-1][y-k]=='1')res++;
        k++;
    }
    return res;
}

int main(){
    cin>>n;
    int cnt=0;
    for(int i=0;i<n;i++)cin>>inp[i];
    for(int i=1;i<n-1;i++)for(int j=1;j<n-1;j++){
        if(inp[i][j]=='1')cnt+=countlen1(i,j);
    }
    for(int i=1;i<n;i++)for(int j=1;j<n;j++){
        if(inp[i][j]=='1')cnt+=countlen2(i,j);
    }
    cout<<cnt<<endl;
	return 0;
}
2022/9/24 12:31
加载中...