90分求调
查看原帖
90分求调
788951
TLE_AK楼主2022/11/23 14:41
#include<iostream>
using namespace std;

int main()
{
	int n,x,y,i=1,j=1,l=0,d=0;
	cin>>n>>x>>y;
	l=n;
	while(i!=x&&j!=y&&n-i+1!=x&&n-j+1!=y)
	{
		d+=l*l-(l-2)*(l-2);
		i++;
		j++;
		l-=2;
	}
	if(i==x)cout<<d+(y-j+1);
	else if(j==y)cout<<d+l*l-(l-2)*(l-2)-(x-i)+1;
	else if(n-i+1==x)cout<<d+l*l-(l-2)*(l-2)-(l-i)+1-(y-j);
	else cout<<d+l+(x-i);
	return 0;
}

错的样例点是:

输入:100 89 46
答案:4114
我的输出:4125

思路是先找到所找的坐标处于哪个环再计算

2022/11/23 14:41
加载中...