pku2619.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 51 行

CPP
51
字号
int main()
{
	int a, b, ax, ay, bx, by, atobx, base, px, py, p;
	while(scanf("%d%d",&a,&b)!=-1)
	{
		if(a>b)
		{
			ax=a;
			a=b;
			b=ax;	
		}
	
		ay=(int)sqrt(a-1);
	
		by=(int)sqrt(b-1);

		ax=a-ay*ay;
		bx=b-by*by;
		
		atobx=ax+(by-ay);
		
		if(ax%2==0)
		{
			if(abs(bx-atobx) <= by-ay+1 )
			{
				if(bx%2==0) base=(by-ay)*2;
				else base=1+(by-ay)*2;	
			}
			else
			{
				base=abs(atobx-bx)+(by-ay);	
			}
		}
		else
		{
			if(abs(bx-atobx) <= by-ay )
			{
				if(bx%2==0) base=(by-ay)*2-1;
				else base=(by-ay)*2;	
			}
			else
			{
				base=abs(atobx-bx)+(by-ay);	
			}
		}
		printf("%d\n",base);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?