源码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int main(){
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
int mx,my,mz;
int nx,ny,nz;
nz=sqrt(n-1)+1;
mz=sqrt(m-1)+1;
nx=(n-(nz-1)*(nz-1)+1)/2;
mx=(m-(mz-1)*(mz-1)+1)/2;
ny=(nz*nz-n)/2;
my=(mz*mz-m)/2;
int sum=abs(mx-nx)+abs(my-ny)+abs(mz-nz);
cout<<sum<<endl;
}
return 0;
}
不是很明白原理,网上也搜不到相应的资料。