怎么优化
查看原帖
怎么优化
672940
wdd2929楼主2022/11/1 15:46
#include<cstdio>
using namespace std;
int num(int n,int x,int y){
	int p=1,l=1,r=n,a=1,b=1;
	bool ch=1; 
	for(int i=1;i<=(n*n);i++){
//		printf("%d %d (%d,%d) %d %d %d\n",i,ch,a,b,p,l,r);
		if(a==x && b==y)return i;
		if(ch){
			b+=p;
			if(b==r)ch=0;
			else if(b==l && p==-1){
				ch=0;
				l++;
			}
		}
		else{
			a+=p;
			if(a==r){
				p=-p;
				ch=1;
			}
			else if((a-b)==1){
				p=-p;
				ch=1;
				r--;
			}
		}
	}
}
int main(){
	int n,x,y;
	scanf("%d%d%d",&n,&x,&y);
	printf("%d",num(n,x,y));
	return 0;
}

2022/11/1 15:46
加载中...