AcWing 1219. 移动距离
原题链接
简单
作者:
再给我一次AC的机会
,
2024-03-03 22:34:35
,
所有人可见
,
阅读 25
#include<iostream>
#include<string>
#include<algorithm>
#include<cmath>
#include<iomanip>
using namespace std;
typedef long long ll;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int w, m, n;
cin >> w >> m >> n;
int cnt = 1;
int mi = 0, mj = 0, ni = 0, nj = 0;
if (m == n)
{
cout << 0;
return 0;
}
for (int i = 0; i < max(m,n); i++)
{
int flag = ((cnt - 1) / w) % 2;
if (flag == 0)
for (int j = 0; j < w; j++)
{
if (cnt == m)
{
mi = i;
mj = j;
}
if (cnt == n)
{
ni = i;
nj = j;
}
cnt++;
}
else
for (int j = w - 1; j >= 0; j--)
{
if (cnt == m)
{
mi = i;
mj = j;
}
if (cnt == n)
{
ni = i;
nj = j;
}
cnt++;
}
}
cout << abs(mi - ni) + abs(mj - nj);
return 0;
}