delete pics to save space
This commit is contained in:
51
2.808.cpp
Normal file
51
2.808.cpp
Normal file
@ -0,0 +1,51 @@
|
||||
#include<stdio.h>
|
||||
#include<string.h>
|
||||
#include<stdlib.h>
|
||||
#include<math.h>
|
||||
const int N = 20005;
|
||||
const int d[5][2] = {{-1, 1}, {0, 2}, {1, 1}, {1, -1}, {0, -2}};
|
||||
struct Point {
|
||||
int x, y;
|
||||
Point() {}
|
||||
Point(int _x, int _y) {
|
||||
x = _x; y = _y;
|
||||
}
|
||||
} p[N];
|
||||
|
||||
int a, b;
|
||||
|
||||
void init() {
|
||||
int pn = 1, x = 0, y = 0;
|
||||
p[pn++] = Point(x, y);
|
||||
y -= 2;
|
||||
p[pn++] = Point(x, y);
|
||||
for (int i = 1; i <= 60; i++) {
|
||||
int j, k;
|
||||
for (j = 0; j < 5; j++) {
|
||||
for (k = 0; k < i; k++) {
|
||||
x += d[j][0]; y += d[j][1];
|
||||
p[pn++] = Point(x, y);
|
||||
}
|
||||
}
|
||||
y -= 2;
|
||||
p[pn++] = Point(x, y);
|
||||
for (j = 0; j < i; j++) {
|
||||
x--; y--;
|
||||
p[pn++] = Point(x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
init();
|
||||
while (~scanf("%d%d", &a, &b) && a || b)
|
||||
{
|
||||
int x = abs(p[a].x - p[b].x);
|
||||
int y = abs(p[a].y - p[b].y);
|
||||
printf("The distance between cells %d and %d is ", a, b);
|
||||
if (y <= x) printf("%d.\n", x);
|
||||
else printf("%d.\n", x + (y - x) / 2);
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user