调了一个晚上从20到60,现在卡住了,Code:
#include <bits/stdc++.h>
using namespace std;
int l,q;
char c[2005][2005];
int zcres(int x,int y)
{
int ans=1,ans2=1;
int xzd=min(x-1,l-x);
int yzd=min(y-1,l-y);
if(!(x == 1 || x == l))
{
for(int i=1;i<=xzd;i++)
{
if(y+i==l+1||y-i==0)break;
if(c[x+i][y]==c[x-i][y]&&xzd>0)ans+=2;
else break;
}
}
if(!(y == 1 || y == l))
{
for(int i=1;i<=yzd;i++)
{
if(x+i==l+1||x-i==0)break;
if(c[x][y+i]==c[x][y-i]&&yzd>0)ans2+=2;
else break;
}
}
ans=ans<ans2?ans2:ans;
return ans;
}
int main()
{
cin>>l>>q;
for(int i=1;i<=l;i++)
for(int j=1;j<=l;j++)
cin>>c[i][j];
int x,y;
while(q--){
cin>>x>>y;
cout<<zcres(x, y);
if(q!=0)
{
cout << endl;
}
}
return 0;
}