#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
思路是先找到所找的坐标处于哪个环再计算