== 소감 == || 2006-02-04 Accepted 0.016 Minimum || == 코드 == {{{~cpp // 10182 - Bee Maja #include using namespace std; #define MAXN 100000 typedef struct { int x; int y; }Coord; Coord cord[MAXN+1]; void set_coord(int& n, const Coord curCoord) { if (n <= MAXN) cord[n++] = curCoord; } void go_down(const int len, int& n, Coord& curCoord) { for (int i = 0; i < len; i++) { curCoord.y++; set_coord(n,curCoord); } } void go_left_up(const int len, int& n, Coord& curCoord) { for (int i = 0; i < len; i++) { curCoord.x--; set_coord(n,curCoord); } } void go_up(const int len, int& n, Coord& curCoord) { for (int i = 0; i < len; i++) { curCoord.y--; set_coord(n,curCoord); } } void go_right_up(const int len, int& n, Coord& curCoord) { for (int i = 0; i < len; i++) { curCoord.x++; curCoord.y--; set_coord(n,curCoord); } } void go_right_down(const int len, int& n, Coord& curCoord) { for (int i = 0; i < len; i++) { curCoord.x++; set_coord(n,curCoord); } } void go_left_down(const int len, int& n, Coord& curCoord) { for (int i = 0; i < len; i++) { curCoord.x--; curCoord.y++; set_coord(n,curCoord); } } void cruise_comb(const int len, int& n, Coord& curCoord) { go_down(1, n, curCoord); go_left_down(len-1, n, curCoord); go_left_up(len, n, curCoord); go_up(len, n, curCoord); go_right_up(len, n, curCoord); go_right_down(len, n, curCoord); go_down(len, n, curCoord); } void convert_coord() { int length = 1; Coord curCoord; int n = 2; curCoord.x = curCoord.y = 0; cord[1].x = cord[1].y = 0; while (n <= MAXN) { cruise_comb(length++, n, curCoord); } } inline void show(int in) { cout << cord[in].x << " " << cord[in].y << endl; } int main() { int in; convert_coord(); while (cin >> in) show(in); return 0; } }}} ---- [BeeMaja] [문보창]