60分其他点WA
查看原帖
60分其他点WA
596201
Misaka_Mikoto_1楼主2023/3/23 23:37

调了一个晚上从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;
}
2023/3/23 23:37
加载中...