-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLevelMap.h
More file actions
152 lines (148 loc) · 63 KB
/
LevelMap.h
File metadata and controls
152 lines (148 loc) · 63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/**
* Authors: Alysha Aul, Nandhitha Krishnan, Paul Rodgers, Nouran Sakr, Chun Yang
* Date: November 28, 2023
* Purpose: To act as a 2D map and contains every information about it.
*/
#ifndef LEVELMAP_H
#define LEVELMAP_H
#pragma once
#include <vector>
#include "Block.h"
class LevelMap
{
public:
/*
* Constructor that initilaize the classic board
*/
LevelMap() {
for(int row = 0; row < 20; row++) {
std::vector<Block> rowData;
for(int col = 0; col < 52; col++) {
Block item = Block(row, col);
rowData.push_back(item);
}
map.push_back(rowData);
}
for(int row = 0; row < 20; row++) {
for(int col = 0; col < 52; col++) {
Block* currNode = &map[row][col];
int prevRow = row - 1;
int nextRow = row + 1;
int prevCol = col - 1;
int nextCol = col + 1;
if(prevRow >= 0) {
currNode->setNeighbour(&map[row-1][col]);
}
if(nextRow < 20) {
currNode->setNeighbour(&map[row+1][col]);
}
if(prevCol >= 0) {
currNode->setNeighbour(&map[row][col-1]);
}
if(nextCol < 52) {
currNode->setNeighbour(&map[row][col+1]);
}
}
}
setStartPoint(&map[10][12]);
setTargetPoint(&map[10][40]);
}
LevelMap(std::vector<std::vector<Block>> map) {
// take map to initialize level map
this->map = map;
}
/*
* Constructor that initilaize the campus map board
*/
LevelMap(int type) {
if(type == 1) {
std::vector<std::pair<int, int>> path = {
{0,63}, {0,62}, {1,62}, {1,61}, {2,61}, {2,60}, {3,61}, {2,62}, {1,63}, {0,64}, {4,61}, {3,62}, {4,60}, {5,60}, {6,60}, {6,59}, {7,59}, {8,58}, {9,58}, {10,57}, {11,57}, {5,59}, {6,58}, {7,58}, {8,57}, {9,57}, {9,56}, {10,56}, {10,55}, {11,55}, {8,56}, {7,57}, {5,58}, {4,59}, {3,60}, {6,57}, {9,55}, {7,56}, {4,58}, {3,59}, {0,61}, {12,56}, {13,55}, {14,54}, {15,53}, {16,53}, {17,53}, {17,52}, {13,54}, {12,55}, {11,56}, {15,54}, {18,52}, {19,52}, {16,54}, {13,56}, {14,55}, {15,55}, {17,54}, {18,54}, {18,53}, {19,53}, {20,53}, {20,52}, {21,52}, {16,52}, {14,53}, {13,53}, {12,54}, {11,54}, {15,52}, {17,51}, {18,51}, {19,51}, {19,50}, {20,50}, {21,50}, {21,49}, {22,49}, {22,50}, {22,51}, {21,51}, {20,51}, {23,51}, {22,52}, {23,52}, {23,53}, {23,54}, {24,52}, {25,51}, {24,51}, {24,50}, {23,50}, {23,49}, {24,49}, {25,48}, {26,48}, {27,48}, {27,47}, {28,47}, {29,47}, {30,47}, {31,47}, {31,46}, {32,46}, {33,46}, {34,46}, {35,45}, {36,45}, {35,46}, {24,48}, {26,51}, {26,50}, {27,50}, {27,51}, {28,50}, {29,50}, {30,50}, {30,49}, {31,49}, {32,49}, {33,49}, {33,48}, {34,48}, {35,48}, {36,48}, {37,48}, {37,47}, {38,47}, {37,45}, {38,45}, {39,44}, {40,44}, {39,45}, {40,45}, {39,46}, {40,46}, {41,46}, {40,47}, {39,47}, {42,46}, {43,46}, {44,46}, {44,45}, {45,45}, {46,45}, {43,45}, {41,47}, {42,47}, {45,46}, {47,45}, {47,44}, {48,44}, {49,44}, {46,44}, {48,45}, {50,44}, {51,43}, {52,43}, {53,43}, {53,42}, {54,42}, {55,42}, {50,43}, {49,43}, {56,42}, {54,43}, {51,44}, {57,41}, {58,41}, {59,41}, {60,40}, {61,40}, {56,41}, {59,40}, {62,40}, {62,39}, {63,39}, {64,39}, {65,39}, {66,39}, {66,38}, {67,38}, {68,38}, {68,37}, {69,37}, {70,37}, {71,37}, {72,36}, {73,36}, {74,36}, {75,36}, {76,36}, {76,35}, {77,35}, {78,35}, {79,35}, {80,34}, {81,34}, {82,34}, {83,33}, {84,33}, {82,33}, {79,34}, {41,43}, {42,43}, {43,43}, {43,42}, {44,42}, {45,42}, {46,42}, {46,41}, {47,41}, {48,41}, {49,41}, {49,40}, {50,40}, {51,40}, {52,40}, {53,40}, {53,39}, {54,39}, {55,39}, {56,39}, {56,38}, {57,38}, {58,38}, {59,38}, {60,38}, {60,37}, {61,37}, {62,37}, {63,37}, {63,36}, {64,36}, {65,36}, {66,36}, {67,35}, {68,35}, {67,36}, {69,35}, {70,34}, {71,34}, {72,34}, {72,33}, {73,33}, {74,33}, {75,33}, {76,33}, {69,34}, {76,32}, {77,32}, {78,32}, {79,32}, {80,31}, {81,31}, {82,31}, {83,31}, {84,31}, {80,32}, {84,30}, {85,30}, {86,30}, {87,30}, {86,31}, {85,31}, {85,32}, {85,33}, {86,33}, {87,33}, {87,32}, {88,32}, {86,32}, {87,31}, {88,31}, {89,31}, {24,53}, {38,46}, {41,44}, {41,45}, {40,48}, {41,48}, {41,49}, {72,37}, {84,32}, {88,30}, {89,30}, {90,30}, {91,30}, {92,30}, {93,30}, {93,29}, {94,29}, {94,30}, {91,31}, {90,31}, {89,32}, {92,31}, {93,31}, {91,29}, {92,29}, {94,28}, {95,28}, {96,28}, {97,28}, {97,27}, {98,27}, {99,27}, {100,27}, {101,27}, {102,27}, {103,27}, {103,26}, {103,25}, {104,25}, {105,25}, {106,25}, {107,24}, {108,24}, {109,24}, {110,24}, {95,30}, {95,29}, {96,29}, {97,29}, {98,29}, {98,28}, {99,28}, {100,28}, {101,28}, {102,28}, {102,26}, {104,26}, {105,26}, {106,26}, {107,26}, {108,26}, {109,26}, {104,27}, {105,27}, {106,27}, {108,25}, {109,25}, {110,25}, {111,25}, {107,25}, {112,25}, {111,24}, {112,24}, {113,24}, {114,24}, {115,24}, {112,23}, {111,23}, {113,23}, {114,23}, {115,23}, {116,24}, {117,24}, {118,24}, {116,23}, {117,23}, {118,23}, {119,23}, {119,22}, {117,22}, {118,22}, {114,22}, {115,22}, {116,22}, {117,21}, {118,21}, {119,21}, {120,21}, {121,21}, {122,21}, {123,21}, {124,21}, {125,21}, {126,21}, {125,22}, {124,22}, {123,22}, {122,22}, {121,22}, {120,22}, {123,23}, {124,23}, {122,23}, {121,23}, {120,23}, {121,20}, {122,20}, {123,20}, {123,19}, {124,19}, {125,19}, {126,19}, {127,19}, {128,19}, {129,19}, {129,18}, {130,18}, {131,18}, {130,19}, {128,20}, {127,20}, {126,20}, {124,20}, {125,20}, {125,18}, {126,18}, {127,18}, {128,18}, {132,18}, {133,18}, {133,17}, {134,17}, {135,17}, {136,17}, {135,18}, {134,18}, {132,19}, {131,19}, {131,17}, {132,17}, {129,17}, {130,17}, {132,16}, {133,16}, {134,16}, {135,16}, {136,16}, {137,16}, {138,16}, {139,16}, {140,16}, {141,16}, {140,17}, {139,17}, {138,17}, {137,17}, {136,15}, {137,15}, {138,15}, {139,15}, {140,15}, {141,14}, {142,14}, {143,14}, {144,14}, {145,14}, {146,14}, {143,15}, {142,15}, {141,15}, {144,15}, {142,13}, {143,13}, {144,13}, {145,13}, {146,13}, {147,13}, {148,13}, {149,13}, {150,13}, {151,13}, {147,14}, {148,14}, {147,12}, {148,12}, {149,12}, {150,12}, {151,12}, {152,12}, {153,12}, {154,12}, {155,12}, {150,11}, {151,11}, {152,11}, {153,11}, {154,11}, {155,11}, {156,11}, {157,11}, {158,11}, {159,11}, {152,10}, {153,10}, {154,10}, {155,10}, {156,10}, {157,10}, {158,10}, {159,10}, {160,10}, {161,10}, {162,10}, {156,9}, {157,9}, {158,9}, {159,9}, {160,9}, {161,9}, {162,9}, {163,9}, {164,9}, {165,9}, {165,8}, {166,8}, {167,8}, {168,8}, {169,8}, {164,8}, {163,8}, {162,8}, {161,8}, {164,7}, {165,7}, {166,7}, {167,7}, {168,7}, {169,7}, {170,7}, {171,7}, {172,7}, {165,5}, {165,6}, {166,6}, {166,5}, {167,6}, {168,6}, {169,6}, {170,6}, {171,6}, {172,6}, {173,6}, {174,6}, {175,6}, {169,5}, {170,5}, {171,5}, {172,5}, {173,5}, {174,5}, {175,5}, {176,5}, {177,5}, {178,5}, {179,5}, {180,5}, {173,4}, {174,4}, {175,4}, {176,4}, {177,4}, {178,4}, {179,4}, {180,4}, {181,4}, {182,4}, {183,4}, {177,3}, {178,3}, {179,3}, {180,3}, {181,3}, {182,3}, {183,3}, {184,3}, {185,3}, {186,3}, {187,3}, {178,0}, {178,1}, {178,2}, {179,2}, {180,2}, {181,2}, {182,2}, {183,2}, {184,2}, {185,2}, {186,2}, {187,2}, {188,2}, {189,2}, {182,1}, {183,1}, {184,1}, {185,1}, {186,1}, {187,1}, {188,1}, {189,1}, {190,1}, {191,1}, {192,1}, {193,1}, {194,1}, {190,2}, {185,0}, {186,0}, {187,0}, {189,0}, {190,0}, {191,0}, {188,0}, {192,0}, {193,0}, {194,0}, {195,0}, {196,0}, {197,0}, {199,0}, {198,0}, {195,1}, {197,1}, {196,1}, {197,2}, {198,3}, {198,2}, {198,1}, {198,4}, {198,5}, {198,6}, {198,7}, {198,8}, {198,9}, {198,10}, {197,9}, {197,8}, {197,7}, {197,6}, {197,5}, {197,4}, {197,3}, {197,10}, {197,11}, {197,12}, {197,13}, {197,14}, {197,15}, {197,16}, {197,17}, {197,18}, {197,19}, {197,20}, {197,21}, {197,22}, {197,23}, {197,24}, {197,25}, {197,26}, {197,27}, {197,28}, {197,29}, {197,30}, {197,31}, {197,32}, {197,33}, {197,34}, {197,35}, {197,36}, {197,37}, {197,38}, {197,39}, {197,40}, {197,41}, {197,42}, {197,43}, {197,44}, {197,45}, {197,46}, {197,47}, {197,48}, {197,49}, {197,50}, {197,51}, {197,52}, {197,53}, {198,11}, {198,12}, {198,13}, {198,14}, {198,15}, {198,16}, {198,17}, {198,18}, {198,19}, {198,20}, {198,21}, {198,22}, {198,23}, {198,24}, {198,25}, {198,26}, {198,27}, {198,28}, {198,29}, {198,30}, {198,31}, {198,32}, {198,33}, {198,34}, {198,35}, {198,36}, {198,37}, {198,38}, {198,39}, {198,40}, {198,41}, {198,42}, {198,43}, {198,44}, {198,45}, {198,46}, {198,47}, {198,48}, {198,49}, {199,37}, {199,38}, {199,39}, {199,40}, {199,41}, {199,42}, {199,43}, {199,44}, {199,45}, {199,46}, {199,47}, {199,48}, {199,49}, {197,54}, {198,54}, {199,54}, {199,55}, {199,56}, {199,57}, {198,55}, {196,51}, {196,52}, {196,53}, {196,54}, {195,53}, {195,54}, {195,52}, {194,53}, {194,54}, {193,54}, {193,55}, {192,55}, {192,56}, {191,56}, {191,57}, {190,57}, {189,57}, {189,58}, {188,58}, {188,59}, {187,59}, {186,59}, {186,60}, {185,60}, {184,60}, {184,61}, {183,61}, {183,62}, {182,62}, {182,63}, {181,63}, {180,63}, {180,64}, {179,64}, {179,65}, {178,65}, {178,66}, {177,66}, {176,66}, {176,67}, {175,67}, {175,68}, {174,68}, {174,69}, {173,69}, {173,70}, {172,70}, {172,71}, {171,71}, {171,72}, {170,72}, {169,72}, {169,73}, {168,73}, {168,74}, {167,74}, {167,75}, {166,75}, {165,76}, {164,76}, {164,77}, {163,77}, {163,78}, {162,78}, {162,79}, {161,79}, {161,80}, {160,80}, {159,80}, {159,81}, {158,81}, {158,82}, {157,82}, {157,83}, {156,83}, {156,84}, {155,84}, {154,84}, {166,76}, {154,85}, {154,86}, {153,86}, {152,86}, {152,87}, {151,87}, {151,88}, {150,88}, {150,89}, {149,89}, {148,89}, {148,90}, {147,90}, {147,91}, {146,91}, {146,92}, {145,92}, {144,92}, {145,91}, {146,90}, {149,88}, {152,88}, {149,90}, {148,91}, {147,92}, {146,93}, {145,93}, {150,87}, {153,85}, {155,85}, {154,83}, {151,73}, {150,73}, {150,74}, {150,75}, {151,75}, {151,74}, {151,76}, {152,76}, {152,77}, {153,77}, {153,78}, {153,79}, {154,79}, {154,80}, {155,80}, {154,81}, {153,81}, {153,80}, {152,80}, {152,79}, {151,79}, {151,78}, {150,78}, {150,77}, {149,77}, {149,76}, {149,75}, {148,75}, {150,76}, {151,77}, {152,78}, {153,82}, {153,83}, {143,56}, {142,56}, {142,57}, {141,57}, {141,58}, {140,58}, {140,59}, {139,60}, {138,60}, {140,60}, {141,60}, {141,61}, {142,61}, {142,62}, {142,63}, {142,64}, {142,65}, {141,66}, {140,66}, {139,66}, {139,67}, {139,68}, {139,69}, {139,70}, {139,71}, {139,72}, {139,73}, {139,74}, {139,75}, {140,75}, {141,75}, {141,74}, {141,73}, {142,73}, {142,72}, {142,71}, {141,71}, {140,71}, {140,72}, {141,72}, {140,73}, {140,74}, {140,70}, {140,69}, {140,68}, {140,67}, {141,67}, {142,66}, {142,67}, {142,68}, {142,69}, {142,70}, {141,69}, {141,70}, {141,68}, {143,70}, {143,71}, {144,71}, {144,72}, {144,73}, {145,73}, {145,74}, {146,74}, {147,74}, {147,75}, {148,74}, {149,74}, {148,73}, {148,72}, {148,71}, {149,73}, {149,72}, {149,71}, {149,70}, {148,70}, {148,69}, {148,68}, {148,67}, {148,66}, {147,65}, {147,64}, {148,65}, {147,70}, {147,69}, {147,67}, {147,66}, {146,64}, {145,64}, {144,64}, {143,64}, {146,65}, {145,65}, {144,65}, {143,65}, {145,66}, {146,66}, {146,67}, {145,67}, {144,66}, {143,66}, {143,67}, {144,67}, {146,68}, {147,68}, {145,68}, {144,68}, {143,68}, {144,69}, {145,69}, {146,69}, {146,70}, {143,69}, {144,70}, {145,70}, {147,71}, {146,71}, {145,71}, {146,72}, {147,72}, {145,72}, {147,73}, {146,73}, {144,56}, {144,57}, {145,57}, {145,56}, {146,56}, {146,55}, {147,55}, {148,55}, {148,56}, {148,57}, {148,58}, {148,59}, {147,59}, {147,60}, {147,61}, {146,61}, {146,62}, {147,63}, {148,64}, {146,63}, {145,62}, {145,63}, {145,61}, {145,60}, {144,63}, {144,61}, {144,60}, {143,61}, {143,63}, {143,62}, {143,60}, {144,62}, {144,59}, {143,59}, {142,59}, {141,59}, {142,58}, {142,60}, {143,58}, {143,57}, {144,58}, {145,58}, {146,58}, {146,57}, {147,57}, {147,56}, {147,58}, {146,59}, {146,60}, {130,57}, {131,57}, {132,57}, {133,57}, {133,58}, {134,58}, {134,59}, {135,59}, {135,60}, {136,60}, {137,60}, {129,72}, {130,72}, {131,72}, {131,73}, {132,73}, {132,74}, {133,74}, {133,75}, {134,75}, {135,75}, {136,75}, {137,75}, {138,75}, {150,86}, {150,85}, {149,85}, {149,84}, {148,84}, {148,83}, {149,83}, {148,82}, {147,81}, {147,80}, {146,80}, {146,81}, {145,81}, {145,82}, {145,83}, {145,84}, {145,85}, {146,85}, {146,86}, {147,86}, {147,87}, {147,88}, {146,88}, {148,87}, {148,86}, {149,86}, {148,85}, {147,85}, {147,84}, {146,84}, {146,83}, {146,82}, {147,83}, {147,82}, {148,88}, {172,18}, {171,18}, {171,17}, {172,17}, {173,17}, {173,18}, {173,19}, {173,20}, {174,21}, {174,20}, {174,19}, {173,21}, {174,22}, {174,23}, {175,23}, {175,24}, {175,25}, {174,25}, {173,25}, {173,24}, {174,24}, {173,23}, {172,23}, {172,22}, {172,21}, {173,22}, {172,20}, {172,19}, {171,19}, {172,25}, {171,25}, {171,26}, {168,26}, {167,26}, {166,26}, {165,26}, {172,26}, {173,26}, {172,27}, {173,27}, {174,27}, {175,27}, {175,26}, {176,26}, {174,26}, {176,27}, {177,27}, {177,28}, {170,25}, {169,25}, {169,26}, {177,29}, {178,29}, {178,28}, {178,30}, {178,31}, {177,31}, {176,31}, {176,32}, {175,32}, {174,32}, {175,31}, {176,30}, {177,30}, {174,31}, {174,30}, {173,30}, {173,29}, {173,28}, {172,28}, {172,29}, {172,30}, {173,31}, {173,32}, {172,32}, {171,32}, {172,31}, {170,32}, {169,32}, {168,32}, {168,33}, {167,33}, {166,33}, {165,33}, {164,34}, {163,34}, {162,34}, {161,34}, {161,35}, {160,35}, {165,34}, {169,33}, {172,33}, {171,33}, {170,33}, {169,34}, {168,34}, {167,34}, {166,34}, {173,33}, {166,35}, {165,35}, {164,35}, {163,35}, {162,36}, {161,36}, {160,36}, {162,35}, {159,36}, {159,35}, {158,35}, {158,36}, {157,36}, {156,36}, {155,36}, {154,36}, {155,37}, {156,37}, {157,37}, {158,37}, {159,37}, {154,35}, {153,35}, {153,34}, {153,33}, {153,32}, {153,31}, {152,31}, {152,30}, {151,30}, {151,29}, {151,28}, {150,28}, {150,27}, {150,26}, {149,26}, {149,25}, {149,24}, {150,25}, {151,26}, {152,26}, {152,27}, {153,27}, {153,28}, {154,28}, {155,28}, {155,29}, {156,29}, {155,30}, {154,30}, {153,30}, {153,29}, {154,29}, {152,29}, {152,28}, {151,27}, {154,27}, {154,26}, {155,26}, {155,25}, {156,25}, {157,25}, {157,24}, {158,24}, {154,25}, {154,24}, {155,24}, {155,23}, {156,23}, {156,22}, {157,22}, {157,21}, {158,21}, {156,21}, {153,36}, {153,37}, {152,37}, {151,37}, {150,37}, {150,38}, {151,38}, {154,37}, {154,38}, {153,38}, {153,39}, {154,39}, {155,39}, {155,40}, {155,41}, {156,41}, {154,41}, {153,42}, {152,42}, {154,42}, {153,41}, {152,43}, {151,43}, {150,43}, {150,44}, {149,44}, {148,45}, {148,44}, {151,42}, {149,45}, {147,45}, {147,46}, {146,46}, {145,46}, {146,47}, {145,47}, {144,47}, {144,48}, {145,48}, {143,48}, {142,48}, {142,47}, {141,47}, {141,46}, {140,46}, {140,45}, {140,44}, {141,43}, {141,42}, {142,42}, {143,42}, {142,43}, {141,44}, {143,43}, {142,44}, {141,45}, {142,45}, {143,44}, {144,44}, {143,45}, {142,46}, {143,46}, {144,45}, {145,44}, {144,46}, {145,45}, {143,47}, {146,45}, {150,42}, {148,43}, {146,44}, {147,44}, {149,43}, {149,42}, {146,43}, {147,43}, {151,41}, {152,40}, {153,40}, {154,40}, {152,39}, {152,38}, {151,39}, {150,40}, {149,41}, {152,41}, {150,41}, {148,42}, {151,40}, {141,41}, {141,40}, {141,39}, {140,39}, {140,38}, {140,37}, {140,36}, {139,36}, {139,35}, {139,34}, {139,33}, {138,33}, {138,32}, {137,32}, {137,31}, {138,31}, {140,33}, {139,32}, {140,34}, {141,34}, {141,33}, {142,33}, {143,33}, {144,33}, {144,34}, {142,34}, {140,35}, {141,37}, {142,37}, {143,37}, {144,37}, {144,36}, {145,36}, {145,37}, {146,37}, {146,38}, {147,38}, {148,38}, {149,38}, {149,39}, {148,40}, {146,40}, {145,41}, {150,39}, {147,40}, {149,40}, {146,41}, {145,42}, {146,42}, {147,42}, {148,41}, {147,41}, {144,42}, {148,39}, {147,39}, {144,38}, {143,38}, {145,39}, {146,39}, {142,38}, {141,38}, {143,39}, {144,39}, {142,40}, {143,40}, {145,38}, {142,39}, {144,40}, {143,41}, {144,41}, {145,40}, {142,41}, {144,43}, {145,43}, {137,45}, {138,45}, {139,45}, {138,46}, {139,46}, {139,47}, {139,48}, {140,48}, {140,49}, {141,49}, {142,50}, {143,50}, {143,51}, {142,51}, {141,50}, {136,45}, {136,46}, {135,46}, {134,46}, {133,46}, {135,45}, {133,47}, {132,47}, {132,48}, {131,48}, {131,47}, {131,46}, {131,45}, {130,45}, {130,44}, {129,44}, {128,44}, {127,44}, {126,44}, {126,45}, {125,45}, {125,46}, {124,46}, {124,47}, {124,48}, {124,49}, {125,49}, {125,50}, {126,50}, {127,50}, {127,51}, {128,51}, {129,51}, {129,50}, {130,50}, {130,49}, {131,49}, {132,46}, {132,45}, {133,45}, {132,44}, {131,44}, {131,43}, {131,42}, {130,42}, {129,42}, {129,43}, {130,43}, {128,43}, {127,43}, {127,42}, {123,24}, {123,25}, {124,25}, {124,26}, {124,27}, {124,28}, {124,29}, {125,29}, {125,30}, {125,31}, {125,32}, {126,32}, {126,33}, {126,34}, {126,35}, {126,36}, {127,36}, {127,37}, {127,38}, {127,39}, {127,40}, {127,41}, {125,23}, {125,24}, {125,25}, {126,25}, {124,24}, {126,26}, {126,27}, {127,27}, {127,28}, {127,29}, {127,30}, {126,30}, {127,31}, {126,31}, {128,31}, {127,32}, {128,32}, {128,33}, {129,35}, {128,34}, {128,35}, {129,36}, {129,37}, {128,37}, {128,38}, {129,38}, {130,39}, {130,40}, {130,41}, {129,41}, {129,40}, {129,39}, {117,48}, {118,48}, {117,47}, {116,47}, {118,47}, {117,46}, {117,45}, {117,44}, {117,43}, {116,43}, {116,42}, {116,41}, {117,41}, {118,41}, {118,42}, {117,42}, {115,42}, {114,42}, {114,41}, {113,41}, {112,41}, {112,40}, {111,40}, {110,40}, {109,40}, {109,39}, {108,40}, {110,41}, {111,41}, {115,41}, {116,44}, {118,46}, {118,49}, {118,50}, {119,50}, {119,51}, {119,49}, {119,48}, {120,48}, {121,48}, {122,48}, {123,48}, {123,49}, {123,50}, {124,50}, {123,51}, {122,51}, {121,51}, {122,50}, {120,51}, {119,52}, {120,52}, {121,52}, {122,52}, {127,52}, {128,52}, {129,52}, {129,53}, {129,54}, {129,55}, {129,56}, {128,54}, {128,53}, {129,57}, {130,54}, {130,53}, {130,52}, {130,51}, {131,51}, {131,50}, {129,58}, {129,59}, {129,60}, {129,61}, {129,62}, {129,63}, {128,63}, {127,63}, {126,63}, {125,63}, {125,64}, {126,64}, {127,64}, {127,65}, {128,65}, {126,65}, {128,64}, {129,64}, {129,67}, {128,67}, {128,68}, {128,69}, {128,70}, {128,71}, {128,72}, {129,70}, {129,69}, {129,68}, {128,66}, {129,65}, {129,66}, {128,73}, {127,73}, {126,73}, {127,72}, {128,74}, {129,74}, {129,75}, {129,73}, {130,75}, {130,76}, {131,76}, {131,77}, {132,77}, {132,78}, {128,75}, {129,76}, {130,77}, {131,78}, {127,75}, {127,74}, {126,74}, {125,74}, {124,74}, {123,74}, {122,74}, {121,74}, {120,74}, {119,74}, {119,75}, {123,73}, {124,73}, {125,73}, {122,75}, {121,75}, {120,75}, {119,76}, {120,76}, {120,77}, {121,77}, {121,78}, {121,79}, {121,80}, {120,80}, {120,81}, {122,80}, {122,81}, {123,81}, {122,79}, {118,75}, {117,75}, {116,75}, {118,74}, {117,74}, {115,76}, {114,76}, {113,77}, {112,77}, {112,78}, {111,78}, {111,79}, {110,79}, {109,79}, {109,78}, {110,78}, {111,77}, {113,76}, {115,75}, {118,76}, {117,76}, {116,77}, {115,77}, {114,77}, {114,78}, {113,78}, {112,79}, {111,80}, {110,80}, {109,81}, {116,76}, {117,77}, {116,78}, {117,78}, {117,79}, {110,81}, {108,81}, {108,82}, {107,82}, {109,80}, {108,80}, {107,80}, {106,80}, {105,79}, {106,79}, {104,79}, {103,78}, {104,80}, {105,80}, {105,81}, {106,81}, {104,81}, {105,82}, {106,82}, {106,83}, {106,84}, {107,84}, {107,85}, {107,83}, {107,81}, {108,85}, {108,86}, {109,85}, {109,86}, {109,87}, {110,87}, {110,88}, {110,89}, {109,89}, {109,90}, {108,90}, {107,90}, {108,89}, {109,88}, {106,90}, {105,91}, {106,91}, {107,91}, {108,91}, {105,90}, {105,89}, {105,88}, {104,90}, {104,91}, {106,89}, {106,88}, {107,87}, {107,86}, {106,85}, {106,86}, {106,87}, {99,72}, {99,73}, {99,74}, {99,75}, {100,75}, {101,75}, {101,74}, {102,74}, {102,75}, {102,76}, {102,77}, {102,78}, {104,78}, {103,79}, {102,79}, {101,78}, {100,78}, {100,79}, {99,79}, {101,79}, {99,80}, {98,80}, {97,80}, {96,80}, {96,79}, {95,79}, {95,78}, {95,77}, {94,77}, {95,76}, {95,75}, {94,75}, {94,74}, {95,74}, {96,74}, {96,73}, {97,73}, {97,72}, {98,72}, {98,73}, {98,74}, {97,74}, {96,75}, {96,76}, {97,76}, {97,75}, {98,75}, {98,76}, {99,76}, {97,77}, {96,77}, {98,77}, {100,76}, {101,76}, {101,77}, {100,77}, {99,77}, {98,78}, {99,78}, {97,78}, {96,78}, {97,79}, {98,79}, {94,84}, {94,83}, {94,82}, {95,82}, {95,81}, {96,81}, {94,85}, {87,101}, {87,100}, {88,100}, {89,100}, {89,99}, {90,99}, {88,101}, {91,98}, {92,98}, {92,97}, {93,97}, {94,97}, {95,96}, {96,96}, {93,98}, {91,99}, {94,96}, {96,95}, {97,95}, {98,95}, {99,94}, {98,94}, {100,94}, {100,93}, {101,93}, {102,92}, {103,92}, {103,91}, {101,92}, {85,101}, {85,102}, {86,101}, {86,102}, {85,103}, {87,102}, {84,103}, {84,104}, {84,102}, {83,102}, {83,103}, {83,101}, {83,100}, {84,101}, {82,99}, {82,98}, {81,98}, {81,97}, {82,100}, {82,101}, {76,89}, {77,90}, {77,91}, {78,91}, {78,92}, {78,93}, {79,93}, {79,94}, {79,95}, {80,95}, {80,96}, {80,97}, {77,89}, {78,90}, {79,91}, {79,92}, {74,85}, {75,86}, {75,87}, {76,87}, {76,88}, {75,88}, {74,86}, {73,85}, {73,84}, {73,83}, {72,83}, {72,82}, {71,82}, {71,81}, {74,84}, {75,85}, {75,84}, {76,84}, {76,83}, {77,83}, {71,80}, {70,80}, {70,81}, {69,81}, {71,79}, {72,79}, {73,79}, {73,78}, {74,78}, {74,77}, {75,77}, {76,77}, {77,77}, {77,76}, {78,76}, {78,75}, {79,75}, {80,75}, {80,74}, {81,74}, {82,74}, {82,73}, {83,73}, {83,72}, {84,72}, {85,72}, {85,71}, {86,71}, {87,71}, {87,70}, {88,70}, {88,69}, {89,69}, {90,69}, {91,68}, {92,68}, {82,75}, {82,76}, {82,77}, {83,77}, {85,73}, {85,74}, {85,75}, {84,73}, {92,67}, {91,69}, {93,68}, {93,67}, {94,67}, {94,66}, {95,66}, {96,66}, {97,65}, {98,65}, {98,64}, {96,65}, {97,66}, {97,67}, {98,67}, {99,64}, {100,64}, {101,63}, {102,63}, {102,62}, {103,62}, {100,63}, {103,61}, {104,61}, {105,61}, {105,60}, {106,60}, {107,60}, {107,59}, {108,59}, {109,59}, {109,58}, {110,58}, {110,57}, {111,57}, {112,57}, {112,58}, {113,58}, {113,59}, {112,56}, {113,56}, {114,56}, {114,55}, {115,55}, {115,54}, {116,54}, {117,54}, {117,53}, {118,53}, {118,52}, {119,53}, {88,68}, {88,67}, {87,67}
};
std::vector<std::pair<int, int>> path2 = {
{87,66}, {86,66}, {86,65}, {86,64}, {85,64}, {85,63}, {84,63}, {84,62}, {83,62}, {83,61}, {83,60}, {82,60}, {83,59}, {84,59}, {85,59}, {85,58}, {86,58}, {86,57}, {87,57}, {88,57}, {88,56}, {89,56}, {86,49}, {85,49}, {85,48}, {84,49}, {84,50}, {83,51}, {83,52}, {82,52}, {83,50}, {82,53}, {82,54}, {82,55}, {83,55}, {83,56}, {84,56}, {84,57}, {84,58}, {81,53}, {81,52}, {81,51}, {81,50}, {80,50}, {78,59}, {79,59}, {79,60}, {79,61}, {80,61}, {80,62}, {80,63}, {81,63}, {81,64}, {82,64}, {82,65}, {82,66}, {83,66}, {83,67}, {84,67}, {84,68}, {84,69}, {85,70}, {85,69}, {81,60}, {81,61}, {71,78}, {70,78}, {70,77}, {70,76}, {69,76}, {69,75}, {69,74}, {68,74}, {80,67}, {80,66}, {81,66}, {68,82}, {67,82}, {66,82}, {66,83}, {65,83}, {64,83}, {64,82}, {63,82}, {63,81}, {64,81}, {64,80}, {65,80}, {65,79}, {66,79}, {67,79}, {68,78}, {69,78}, {69,77}, {68,79}, {62,80}, {62,79}, {61,78}, {61,77}, {61,79}, {62,81}, {63,80}, {60,77}, {60,76}, {60,75}, {60,74}, {59,74}, {59,73}, {59,72}, {58,72}, {58,71}, {58,70}, {58,69}, {58,68}, {58,67}, {57,67}, {57,66}, {56,66}, {56,65}, {55,65}, {54,65}, {54,64}, {53,64}, {53,63}, {52,63}, {51,63}, {50,63}, {51,64}, {52,64}, {50,64}, {53,65}, {55,66}, {56,67}, {57,68}, {57,69}, {57,70}, {57,71}, {56,70}, {56,69}, {55,69}, {55,68}, {54,68}, {53,67}, {52,67}, {52,66}, {51,66}, {50,66}, {50,65}, {53,68}, {50,62}, {51,62}, {52,62}, {53,61}, {54,61}, {55,61}, {53,62}, {54,62}, {55,62}, {56,61}, {57,61}, {57,60}, {58,60}, {59,59}, {60,59}, {61,58}, {61,57}, {60,57}, {60,58}, {58,59}, {57,59}, {55,60}, {56,60}, {60,56}, {60,55}, {59,54}, {59,53}, {60,54}, {58,51}, {59,51}, {59,52}, {58,50}, {58,49}, {59,50}, {57,49}, {57,48}, {56,48}, {59,58}, {41,50}, {41,51}, {41,52}, {42,52}, {42,53}, {42,54}, {43,54}, {43,53}, {44,53}, {44,52}, {45,52}, {46,52}, {46,51}, {46,50}, {45,51}, {47,50}, {47,49}, {48,49}, {48,48}, {48,47}, {49,47}, {50,47}, {51,47}, {51,46}, {52,46}, {53,46}, {54,46}, {54,45}, {55,45}, {53,47}, {52,47}, {50,48}, {49,48}, {47,51}, {50,46}, {53,45}, {56,45}, {57,44}, {58,44}, {60,43}, {61,43}, {64,42}, {65,42}, {65,43}, {65,44}, {64,43}, {63,43}, {64,44}, {62,43}, {61,44}, {60,44}, {59,45}, {58,45}, {57,45}, {56,46}, {55,46}, {59,44}, {65,45}, {66,45}, {66,46}, {66,47}, {65,46}, {66,48}, {67,48}, {67,49}, {67,50}, {67,51}, {68,51}, {69,51}, {68,50}, {68,49}, {68,48}, {67,47}, {67,46}, {66,44}, {43,55}, {43,56}, {44,56}, {44,57}, {44,58}, {44,59}, {45,59}, {45,60}, {46,60}, {46,61}, {47,61}, {47,62}, {48,62}, {48,63}, {49,63}, {48,64}, {49,64}, {49,65}, {49,66}, {48,66}, {47,66}, {47,67}, {46,67}, {46,68}, {47,68}, {47,69}, {48,69}, {48,70}, {49,69}, {49,68}, {48,68}, {48,67}, {46,69}, {46,70}, {46,71}, {45,71}, {45,72}, {44,72}, {44,73}, {44,74}, {44,75}, {44,76}, {44,77}, {45,77}, {45,78}, {46,78}, {46,77}, {46,76}, {47,76}, {47,75}, {48,75}, {48,76}, {47,77}, {49,76}, {49,75}, {50,75}, {49,74}, {48,74}, {48,73}, {48,72}, {48,71}, {47,71}, {47,70}, {45,73}, {45,74}, {45,75}, {45,76}, {46,75}, {46,74}, {46,73}, {46,72}, {47,72}, {47,73}, {47,74}, {44,78}, {44,79}, {43,79}, {43,80}, {42,80}, {41,80}, {41,81}, {41,82}, {41,83}, {41,84}, {41,85}, {41,86}, {42,86}, {42,87}, {43,87}, {43,86}, {44,86}, {45,86}, {46,86}, {46,85}, {46,84}, {45,84}, {45,83}, {45,82}, {45,81}, {45,80}, {45,79}, {44,80}, {44,81}, {43,81}, {43,82}, {42,82}, {42,81}, {42,83}, {42,84}, {42,85}, {45,85}, {44,85}, {43,85}, {43,84}, {43,83}, {44,83}, {44,82}, {44,84}, {132,79}, {133,80}, {134,81}, {132,80}, {133,81}, {134,82}, {135,83}, {135,82}, {133,79}, {134,80}, {135,81}, {136,83}, {136,84}, {137,85}, {137,86}, {137,84}, {138,85}, {138,86}, {139,86}, {139,87}, {139,88}, {140,88}, {140,89}, {141,89}, {141,90}, {138,87}, {141,91}, {142,91}, {142,92}, {143,92}, {143,93}, {144,93}, {144,94}, {145,94}, {145,95}, {146,95}, {146,96}, {144,95}, {145,96}, {145,97}, {146,97}, {143,94}, {142,93}, {142,94}, {141,94}, {141,95}, {141,96}, {141,97}, {141,98}, {142,98}, {142,99}, {142,100}, {143,100}, {143,101}, {144,102}, {144,103}, {144,104}, {145,104}, {145,103}, {143,102}, {146,104}, {146,105}, {147,105}, {148,105}, {149,105}, {149,104}, {150,104}, {150,103}, {149,102}, {149,101}, {149,100}, {148,100}, {148,101}, {148,99}, {147,99}, {147,98}, {146,98}, {147,97}, {148,98}, {150,101}, {150,102}, {151,103}, {151,104}, {152,104}, {152,105}, {152,106}, {151,105}, {150,105}, {152,107}, {153,108}, {153,107}, {153,106}, {153,105}, {153,109}, {153,110}, {152,110}, {152,111}, {152,112}, {152,113}, {152,109}, {152,108}, {151,113}, {151,112}, {151,114}, {150,114}, {150,115}, {149,115}, {148,116}, {147,116}, {149,116}, {147,117}, {146,117}, {148,115}, {146,116}, {145,117}, {144,117}, {144,118}, {143,118}, {142,119}, {141,120}, {142,120}, {143,119}, {146,118}, {145,118}, {144,119}, {145,119}, {135,113}, {135,112}, {136,112}, {134,112}, {136,111}, {137,111}, {137,112}, {137,113}, {138,114}, {138,115}, {139,115}, {138,113}, {138,112}, {139,114}, {140,116}, {140,117}, {141,117}, {141,118}, {141,119}, {139,116}, {142,118}, {139,113}, {139,117}, {140,118}, {140,119}, {132,109}, {133,109}, {133,108}, {137,115}, {136,116}, {137,116}, {141,121}, {140,121}, {139,121}, {140,120}, {139,122}, {138,122}, {137,122}, {137,123}, {136,123}, {136,124}, {135,124}, {134,125}, {138,123}, {133,125}, {132,126}, {133,126}, {134,126}, {135,125}, {133,127}, {134,127}, {132,125}, {132,124}, {133,124}, {133,123}, {132,123}, {133,122}, {134,122}, {134,121}, {135,121}, {135,120}, {136,120}, {136,119}, {136,118}, {135,118}, {131,125}, {130,125}, {130,126}, {130,127}, {131,126}, {129,127}, {129,128}, {128,128}, {131,127}, {132,127}, {127,129}, {126,129}, {126,130}, {125,129}, {124,130}, {128,127}, {126,128}, {125,128}, {127,128}, {127,127}, {125,130}, {124,131}, {123,130}, {123,131}, {123,129}, {124,129}, {124,128}, {124,127}, {125,127}, {125,126}, {125,125}, {125,124}, {126,124}, {126,123}, {127,123}, {128,123}, {129,124}, {130,124}, {124,121}, {125,121}, {125,122}, {125,123}, {128,119}, {129,120}, {129,121}, {129,122}, {129,123}, {123,132}, {122,132}, {122,133}, {122,134}, {122,129}, {121,129}, {121,130}, {120,130}, {122,130}, {120,131}, {120,132}, {121,132}, {121,133}, {121,131}, {123,134}, {123,135}, {123,136}, {124,136}, {124,137}, {123,137}, {122,135}, {121,134}, {122,136}, {123,138}, {124,138}, {124,139}, {125,140}, {125,141}, {126,142}, {126,143}, {127,143}, {127,144}, {128,144}, {128,143}, {127,142}, {127,141}, {126,141}, {126,140}, {125,139}, {125,138}, {128,142}, {126,139}, {129,144}, {129,145}, {130,146}, {131,147}, {131,148}, {132,148}, {131,146}, {130,145}, {129,143}, {128,141}, {129,146}, {130,147}, {130,148}, {131,149}, {128,145}, {132,149}, {133,150}, {133,151}, {134,152}, {134,153}, {134,154}, {132,150}, {135,153}, {135,154}, {136,154}, {134,151}, {133,152}, {135,155}, {136,156}, {137,156}, {137,157}, {137,158}, {138,158}, {138,157}, {136,155}, {138,159}, {136,157}, {135,156}, {86,103}, {86,104}, {85,104}, {85,105}, {85,106}, {84,105}, {84,106}, {84,107}, {84,108}, {83,104}, {83,105}, {84,109}, {84,110}, {84,111}, {84,112}, {85,112}, {85,111}, {83,106}, {83,107}, {83,108}, {85,113}, {86,114}, {86,113}, {86,112}, {85,110}, {85,109}, {85,108}, {85,107}, {87,113}, {87,114}, {88,114}, {88,115}, {87,115}, {89,116}, {90,116}, {88,116}, {86,115}, {85,114}, {84,114}, {90,117}, {91,117}, {92,117}, {92,118}, {91,118}, {89,117}, {88,117}, {87,116}, {93,118}, {94,118}, {95,118}, {95,119}, {96,119}, {94,119}, {93,119}, {89,115}, {90,115}, {91,116}, {92,116}, {93,117}, {94,117}, {96,118}, {97,118}, {102,119}, {103,119}, {104,119}, {105,119}, {104,120}, {103,120}, {102,120}, {101,120}, {98,120}, {97,120}, {97,119}, {98,119}, {99,119}, {101,119}, {100,119}, {100,120}, {99,120}, {106,120}, {106,121}, {107,121}, {108,121}, {109,121}, {105,120}, {107,120}, {109,122}, {110,122}, {111,122}, {111,123}, {112,123}, {112,124}, {113,124}, {108,120}, {109,120}, {110,121}, {111,121}, {112,122}, {113,123}, {114,123}, {114,124}, {115,124}, {115,125}, {116,125}, {116,126}, {117,126}, {117,127}, {115,126}, {114,125}, {118,127}, {118,128}, {119,128}, {119,129}, {120,129}, {119,130}, {116,127}, {117,128}, {118,129}, {119,132}, {119,131}, {118,131}, {118,132}, {120,133}, {119,133}, {118,133}, {117,133}, {116,133}, {117,132}, {116,134}, {115,134}, {115,135}, {114,135}, {113,136}, {112,136}, {111,137}, {113,135}, {110,137}, {112,137}, {114,136}, {111,138}, {110,138}, {111,139}, {111,140}, {112,140}, {112,141}, {112,142}, {112,143}, {111,143}, {111,144}, {110,144}, {109,145}, {108,145}, {107,145}, {106,145}, {106,144}, {106,143}, {105,143}, {105,142}, {107,144}, {108,146}, {109,146}, {110,145}, {106,141}, {107,141}, {107,140}, {108,140}, {109,140}, {109,139}, {110,139}, {109,138}, {108,139}, {105,141}, {104,142}, {103,142}, {103,143}, {104,143}, {104,144}, {104,145}, {105,144}, {103,145}, {103,146}, {103,147}, {102,147}, {102,148}, {102,149}, {101,149}, {101,150}, {101,151}, {102,151}, {102,152}, {102,153}, {103,153}, {103,154}, {104,154}, {103,152}, {104,152}, {104,153}, {105,153}, {105,152}, {106,152}, {106,151}, {106,150}, {107,150}, {107,151}, {108,151}, {108,150}, {108,152}, {108,153}, {108,154}, {109,154}, {108,155}, {107,155}, {107,156}, {106,155}, {105,154}, {105,155}, {107,154}, {106,154}, {107,153}, {106,153}, {107,152}, {104,155}, {103,155}, {102,156}, {101,156}, {101,157}, {103,156}, {103,157}, {103,158}, {102,159}, {101,159}, {100,159}, {100,160}, {99,160}, {98,160}, {97,160}, {96,160}, {95,160}, {94,160}, {94,161}, {99,159}, {103,159}, {102,158}, {102,157}, {101,158}, {102,143}, {102,144}, {101,144}, {101,145}, {100,145}, {99,145}, {99,146}, {98,146}, {97,146}, {96,146}, {95,147}, {94,147}, {96,147}, {93,147}, {92,147}, {91,147}, {90,147}, {89,147}, {88,147}, {87,147}, {86,147}, {86,146}, {85,146}, {84,146}, {84,145}, {128,120}, {100,112}, {101,112}, {101,113}, {102,113}, {103,113}, {104,113}, {105,113}, {106,114}, {107,114}, {108,114}, {109,115}, {105,114}, {108,115}, {110,115}, {111,115}, {112,115}, {113,116}, {114,116}, {115,116}, {115,117}, {116,117}, {117,117}, {118,117}, {118,118}, {119,118}, {120,118}, {121,118}, {112,116}, {99,112}, {100,111}, {101,110}, {101,109}, {100,110}, {102,109}, {102,108}, {103,108}, {103,107}, {103,106}, {104,106}, {104,105}, {105,105}, {105,104}, {105,103}, {106,103}, {106,102}, {107,102}, {107,101}, {108,101}, {108,100}, {109,99}, {109,98}, {110,98}, {110,97}, {111,97}, {111,96}, {111,95}, {112,95}, {112,94}, {113,94}, {113,93}, {108,99}, {86,108}, {87,108}, {88,108}, {89,108}, {89,109}, {90,109}, {91,109}, {92,109}, {92,110}, {93,110}, {94,110}, {95,110}, {95,111}, {96,111}, {97,111}, {98,111}, {98,112}, {75,128}, {74,129}, {73,129}, {75,129}, {72,129}, {71,129}, {71,128}, {70,128}, {69,128}, {69,129}, {68,129}, {68,130}, {69,130}, {67,129}, {67,128}, {66,128}, {65,128}, {64,128}, {63,128}, {62,128}, {61,128}, {61,127}, {60,127}, {59,127}, {58,127}, {67,127}, {67,126}, {67,125}, {67,124}, {67,123}, {68,123}, {68,122}, {68,121}, {68,120}, {68,119}, {68,118}, {68,117}, {68,116}, {68,115}, {68,114}, {69,113}, {70,114}, {69,114}, {68,113}, {71,114}, {71,115}, {70,115}, {69,115}, {69,116}, {70,116}, {71,116}, {69,117}, {70,117}, {71,117}, {72,116}, {73,116}, {74,116}, {74,115}, {72,115}, {73,115}, {72,114}, {73,114}, {74,117}, {76,115}, {77,115}, {78,115}, {79,115}, {75,115}, {75,116}, {76,116}, {77,116}, {78,116}, {79,116}, {80,115}, {81,115}, {82,115}, {83,115}, {84,115}, {85,115}, {84,113}, {83,116}, {82,116}, {81,116}, {80,116}, {84,116}, {83,117}, {83,118}, {83,119}, {84,117}, {84,118}, {84,119}, {84,120}, {84,121}, {84,122}, {84,123}, {84,124}, {83,121}, {83,120}, {83,122}, {83,123}, {83,124}, {84,125}, {84,126}, {85,126}, {86,127}, {87,127}, {88,127}, {88,128}, {89,128}, {90,128}, {91,128}, {91,129}, {92,129}, {93,129}, {94,129}, {95,129}, {95,130}, {95,131}, {95,132}, {94,132}, {93,132}, {92,132}, {91,132}, {90,132}, {89,132}, {89,131}, {89,130}, {89,129}, {92,133}, {92,134}, {84,127}, {84,128}, {83,128}, {83,129}, {83,130}, {82,130}, {82,131}, {82,132}, {81,132}, {81,133}, {81,134}, {81,135}, {81,136}, {81,137}, {80,138}, {80,139}, {80,140}, {80,141}, {80,142}, {80,143}, {81,143}, {81,144}, {82,145}, {83,145}, {83,146}, {81,145}, {80,145}, {80,144}, {79,144}, {82,146}, {81,146}, {81,147}, {99,113}, {98,114}, {98,115}, {98,116}, {97,116}, {97,117}, {96,120}, {95,120}, {95,121}, {95,122}, {94,123}, {94,124}, {93,125}, {93,126}, {92,127}, {92,128}, {99,114}, {91,130}, {91,131}, {96,132}, {96,131}, {97,131}, {98,131}, {99,131}, {100,131}, {101,131}, {102,131}, {102,132}, {103,132}, {104,132}, {105,132}, {106,132}, {107,132}, {108,132}, {108,131}, {109,131}, {110,131}, {111,131}, {112,131}, {113,131}, {113,130}, {114,130}, {115,130}, {116,130}, {116,129}, {117,129}, {81,138}, {95,123}, {94,125}, {92,126}, {76,144}, {77,144}, {78,144}, {79,145}, {78,145}, {77,145}, {77,146}, {76,147}, {76,148}, {75,148}, {75,149}, {76,146}, {75,150}, {74,150}, {74,151}, {73,152}, {74,152}, {73,153}, {72,154}, {72,155}, {71,155}, {71,156}, {72,153}, {71,154}, {70,155}, {70,156}, {70,154}, {71,153}, {72,152}, {72,151}, {73,150}, {73,151}, {71,152}, {70,152}, {67,160}, {68,160}, {69,160}, {69,159}, {69,158}, {70,158}, {70,157}, {71,157}, {55,137}, {56,137}, {57,137}, {58,137}, {59,138}, {60,138}, {61,138}, {61,139}, {62,139}, {63,139}, {63,140}, {64,140}, {65,140}, {66,140}, {67,140}, {68,140}, {68,141}, {69,141}, {70,141}, {71,141}, {71,142}, {72,142}, {73,142}, {73,143}, {74,143}, {75,143}, {76,143}, {77,143}, {74,142}, {70,142}, {67,141}, {62,140}, {60,139}, {58,138}, {57,138}, {56,138}, {54,137}, {54,138}, {53,137}, {52,137}, {52,136}, {54,136}, {53,136}, {51,135}, {50,135}, {49,135}, {49,134}, {48,134}, {47,134}, {47,133}, {46,133}, {45,133}, {45,132}, {44,132}, {43,132}, {44,133}, {46,134}, {48,135}, {50,136}, {51,136}, {42,132}, {41,132}, {42,133}, {41,133}, {41,134}, {40,134}, {40,135}, {39,135}, {39,134}, {39,136}, {38,136}, {38,137}, {37,138}, {37,139}, {36,139}, {36,140}, {36,141}, {35,141}, {35,142}, {36,142}, {36,143}, {37,143}, {38,143}, {38,142}, {38,141}, {39,140}, {39,139}, {40,138}, {40,137}, {41,137}, {41,136}, {41,135}, {42,134}, {40,136}, {39,137}, {39,138}, {38,138}, {37,141}, {37,140}, {38,140}, {38,139}, {37,142}, {46,132}, {46,131}, {45,131}, {44,131}, {45,130}, {46,130}, {47,131}, {48,131}, {48,132}, {49,132}, {50,132}, {50,133}, {51,133}, {52,133}, {52,134}, {53,134}, {54,134}, {55,134}, {55,135}, {56,135}, {57,135}, {56,134}, {54,133}, {53,133}, {52,132}, {51,132}, {54,132}, {55,131}, {54,131}, {55,130}, {55,129}, {55,128}, {55,127}, {55,126}, {55,125}, {55,124}, {55,123}, {54,123}, {54,122}, {55,122}, {56,122}, {57,122}, {58,122}, {59,122}, {59,123}, {58,123}, {57,123}, {56,123}, {56,127}, {56,126}, {56,125}, {56,124}, {57,127}, {58,128}, {59,128}, {60,128}, {40,121}, {41,121}, {41,120}, {42,121}, {42,122}, {43,122}, {43,123}, {42,123}, {41,122}, {41,123}, {41,124}, {40,124}, {40,125}, {39,125}, {39,126}, {39,127}, {38,127}, {38,128}, {39,129}, {39,130}, {40,130}, {40,131}, {41,131}, {42,131}, {41,130}, {40,129}, {39,128}, {37,127}, {36,127}, {36,126}, {35,126}, {35,125}, {34,125}, {37,128}, {38,129}, {38,130}, {38,126}, {37,126}, {34,124}, {33,124}, {33,123}, {32,123}, {32,122}, {31,122}, {31,121}, {30,121}, {29,120}, {29,119}, {28,119}, {28,118}, {30,122}, {31,123}, {32,124}, {29,121}, {30,120}, {27,119}, {27,118}, {26,118}, {25,117}, {24,117}, {26,117}, {27,117}, {25,116}, {24,116}, {23,116}, {23,115}, {28,120}, {25,118}, {22,116}, {22,115}, {21,115}, {20,115}, {20,114}, {19,114}, {18,114}, {18,113}, {21,114}, {18,115}, {17,115}, {19,115}, {18,116}, {17,116}, {17,114}, {17,113}, {16,113}, {16,114}, {19,113}, {18,112}, {18,111}, {17,111}, {17,110}, {17,109}, {17,108}, {17,107}, {16,107}, {16,106}, {16,105}, {16,104}, {16,103}, {16,102}, {15,102}, {14,102}, {13,102}, {13,103}, {12,103}, {12,104}, {11,104}, {11,105}, {11,106}, {11,107}, {10,108}, {10,109}, {10,110}, {11,109}, {11,108}, {12,106}, {12,105}, {13,104}, {14,104}, {15,104}, {15,103}, {14,103}, {17,106}, {18,110}, {17,112}, {15,112}, {13,111}, {12,111}, {14,111}, {15,111}, {16,111}, {12,110}, {11,110}, {13,110}, {14,110}, {15,110}, {10,111}, {13,112}, {16,112}, {16,110}, {11,111}, {12,112}, {14,112}, {15,113}, {14,113}, {12,113}, {10,112}, {9,112}, {11,112}, {0,111}, {1,111}, {2,111}, {3,111}, {4,111}, {5,112}, {0,110}, {5,111}, {6,111}, {8,111}, {9,111}, {7,111}, {4,112}, {3,112}, {2,112}, {1,112}, {0,112}, {8,112}, {7,112}, {6,112}, {9,110}, {28,117}, {29,116}, {29,115}, {28,115}, {28,116}, {29,114}, {30,114}, {30,113}, {31,113}, {30,115}, {31,112}, {32,111}, {32,112}, {33,111}, {34,111}, {35,111}, {36,111}, {37,111}, {38,111}, {39,111}, {40,111}, {41,111}, {42,111}, {43,111}, {44,111}, {44,110}, {45,110}, {46,110}, {32,110}, {33,110}, {34,109}, {34,110}, {33,109}, {34,108}, {34,107}, {34,106}, {35,106}, {33,108}, {35,105}, {36,105}, {36,104}, {35,107}, {35,104}, {35,103}, {36,103}, {36,102}, {36,101}, {36,100}, {35,100}, {35,99}, {35,98}, {35,97}, {35,96}, {35,95}, {35,94}, {36,94}, {37,94}, {37,95}, {38,95}, {38,96}, {39,96}, {39,97}, {40,97}, {40,98}, {40,99}, {39,99}, {39,100}, {38,100}, {38,101}, {37,101}, {36,99}, {36,97}, {36,96}, {36,95}, {36,98}, {47,101}, {46,101}, {45,101}, {44,101}, {43,101}, {42,101}, {41,101}, {40,101}, {39,101}, {37,102}, {48,101}, {49,101}, {50,101}, {51,101}, {51,100}, {50,100}, {49,100}, {50,99}, {50,98}, {49,98}, {48,98}, {48,97}, {47,97}, {48,96}, {49,96}, {50,96}, {51,96}, {52,96}, {50,97}, {49,97}, {51,97}, {52,97}, {53,97}, {53,98}, {52,98}, {51,98}, {54,98}, {55,98}, {56,98}, {57,98}, {58,98}, {59,98}, {60,98}, {61,98}, {61,99}, {60,99}, {59,99}, {58,99}, {57,99}, {56,99}, {55,99}, {54,99}, {53,99}, {52,99}, {51,99}, {52,100}, {52,101}, {53,100}, {53,96}, {53,95}, {53,94}, {52,95}, {52,94}, {52,93}, {51,93}, {51,92}, {51,91}, {50,91}, {50,92}, {51,94}, {52,92}, {53,92}, {53,91}, {54,91}, {54,90}, {55,90}, {55,91}, {55,92}, {54,92}, {54,93}, {53,93}, {61,105}, {62,105}, {61,108}, {62,108}, {63,108}, {67,116}, {66,116}, {66,115}, {67,115}, {67,117}, {66,117}, {65,116}, {65,117}, {65,118}, {65,115}, {64,115}, {64,114}, {63,114}, {63,113}, {63,112}, {63,111}, {63,110}, {62,110}, {62,109}, {62,111}, {62,112}, {62,113}, {63,115}, {64,116}, {63,107}, {63,106}, {63,105}, {63,104}, {63,103}, {63,102}, {63,101}, {63,109}, {63,100}, {63,99}, {63,98}, {63,97}, {63,96}, {63,95}, {63,94}, {63,93}, {63,92}, {63,91}, {63,87}, {63,86}, {63,85}, {63,84}, {63,83}, {63,90}, {63,89}, {63,88}, {62,107}, {62,106}, {62,104}, {62,103}, {62,102}, {62,101}, {62,100}, {62,99}, {62,98}, {62,84}, {61,84}, {61,85}, {60,85}, {60,86}, {60,87}, {59,87}, {59,88}, {59,89}, {59,90}, {59,91}, {60,91}, {61,91}, {61,92}, {62,92}, {62,93}, {62,83}, {64,84}, {68,81}, {72,80}, {72,81}, {145,59}, {1,99}, {1,98}, {1,97}, {0,96}, {1,96}, {0,99}, {0,80}, {1,80}, {2,80}, {3,80}, {4,80}, {5,80}, {6,80}, {7,79}, {7,78}, {6,78}, {5,78}, {6,79}, {7,80}, {8,80}, {8,79}, {5,77}, {4,77}, {3,77}, {4,78}, {3,78}, {2,78}, {1,78}, {0,78}, {0,77}, {1,77}, {2,77}, {0,76}, {0,75}, {1,74}, {1,75}, {2,74}, {2,73}, {0,74}, {1,73}, {2,72}, {3,71}, {4,71}, {4,70}, {3,70}, {4,69}, {5,69}, {5,68}, {6,68}, {6,67}, {7,67}, {7,66}, {8,66}, {8,65}, {9,65}, {9,64}, {10,64}, {11,64}, {12,64}, {11,65}, {10,65}, {10,66}, {9,66}, {8,67}, {8,68}, {7,68}, {7,69}, {6,69}, {9,67}, {11,63}, {6,70}, {5,71}, {5,72}, {4,73}, {3,74}, {2,75}, {4,72}, {8,69}, {3,73}, {5,70}, {3,72}, {5,73}, {5,74}, {4,74}, {3,75}, {4,75}, {5,75}, {6,76}, {7,76}, {7,77}, {8,77}, {9,77}, {9,76}, {9,75}, {10,75}, {10,74}, {9,73}, {6,72}, {8,72}, {9,72}, {10,72}, {7,72}, {7,73}, {8,73}, {10,73}, {6,73}, {7,74}, {8,74}, {9,74}, {6,74}, {6,75}, {8,75}, {7,75}, {8,76}, {6,71}, {7,71}, {7,70}, {8,70}, {9,69}, {9,70}, {10,70}, {10,71}, {11,72}, {8,71}, {9,71}, {11,73}, {11,74}, {12,73}, {11,75}, {12,74}, {13,73}, {13,72}, {12,63}, {12,62}, {13,62}, {14,62}, {15,62}, {15,63}, {16,63}, {16,64}, {17,64}, {17,65}, {18,65}, {18,66}, {17,67}, {16,67}
};
std::vector<std::pair<int, int>> path3 = {
{17,66}, {16,68}, {16,69}, {16,70}, {15,70}, {15,69}, {14,70}, {14,71}, {13,71}, {12,72}, {14,72}, {15,72}, {16,72}, {15,71}, {16,73}, {17,73}, {17,74}, {18,74}, {18,75}, {18,76}, {17,76}, {16,76}, {16,75}, {16,74}, {15,74}, {15,73}, {14,73}, {17,75}, {17,68}, {18,68}, {19,69}, {19,70}, {20,71}, {18,70}, {18,69}, {17,69}, {19,71}, {20,72}, {19,72},
{18,71}, {17,70}, {17,71}, {18,72}, {19,73}, {20,73}, {20,74}, {21,75}, {22,76}, {22,77}, {23,77}, {23,78}, {24,78}, {22,75}, {22,74}, {21,74}, {21,73}, {22,73}, {22,72}, {21,72}, {21,71}, {21,70}, {20,70}, {20,69}, {19,68}, {18,67}, {25,79}, {25,80}, {24,80}, {23,80}, {23,81}, {22,81}, {21,81}, {20,81}, {19,81}, {18,81}, {17,81}, {16,81}, {15,81}, {14,81}, {12,82}, {11,82}, {10,82}, {10,81}, {9,81}, {9,80}, {9,82}, {10,83}, {10,84}, {10,85}, {10,86}, {10,87}, {11,87}, {11,86}, {12,86}, {12,85}, {12,84}, {12,83}, {11,83}, {11,84}, {11,85}, {12,87}, {12,81}, {11,81}, {14,82}, {14,83}, {14,84}, {14,85}, {15,85}, {16,85}, {17,85}, {18,85}, {19,85}, {18,84}, {17,84}, {16,84}, {16,83}, {15,83}, {15,82}, {15,84}, {20,85}, {20,86}, {20,87}, {21,87}, {22,87}, {22,86}, {21,86}, {24,88}, {24,87}, {23,87}, {23,88}, {23,89}, {22,89}, {22,90}, {22,91}, {22,92}, {23,92}, {24,92}, {25,92}, {26,92}, {27,92}, {27,91}, {28,91}, {28,90}, {28,89}, {27,89}, {27,88}, {26,88}, {26,87}, {25,88}, {25,89}, {24,89}, {26,89}, {26,90}, {25,90}, {24,90}, {23,90}, {27,90}, {26,91}, {25,91}, {24,91}, {23,91}, {27,80}, {26,80}, {26,81}, {26,82}, {26,83}, {27,83}, {27,84}, {27,85}, {28,85}, {29,85}, {29,86}, {30,86}, {28,84}, {28,83}, {27,82}, {27,81}, {28,80}, {29,80}, {29,79}, {30,79}, {103,51}, {104,51}, {105,51}, {91,40}, {92,40}, {92,41}, {93,41}, {94,41}, {95,41}, {95,42}, {96,42}, {97,42}, {98,42}, {98,43}, {99,43}, {100,43}, {101,43}, {101,44}, {100,44}, {99,44}, {99,45}, {100,45}, {54,150}, {54,151}, {55,151}, {54,152}, {54,153}, {55,153}, {56,154}, {57,154}, {57,155}, {58,155}, {58,156}, {59,156}, {59,157}, {60,157}, {60,156}, {60,155}, {59,155}, {57,153}, {57,152}, {57,151}, {57,150}, {57,149}, {56,149}, {55,149}, {55,150}, {55,152}, {55,154}, {56,153}, {56,152}, {56,151}, {56,150}, {58,150}, {58,151}, {59,151}, {60,151}, {60,152}, {61,152}, {61,153}, {25,114}, {26,114}, {26,115}, {131,60}, {131,61}, {130,61}, {130,60}, {130,62}, {132,61}, {133,61}, {133,62}, {133,63}, {133,64}, {134,64}, {134,63}, {134,62}, {135,64}, {132,64}, {131,64}, {132,63}, {132,62}, {131,62}, {131,63}, {131,65}, {130,65}, {130,66}, {130,67}, {130,68}, {130,69}, {130,70}, {131,70}, {132,70}, {133,70}, {134,70}, {135,70}, {135,69}, {135,68}, {135,67}, {134,67}, {134,66}, {134,65}, {133,65}, {132,65}, {131,66}, {132,66}, {133,66}, {131,67}, {132,67}, {132,68}, {133,68}, {133,67}, {132,69}, {133,69}, {134,68}, {134,69}, {131,69}, {131,68}, {103,44}, {104,44}, {105,44}, {102,44}, {102,43}, {105,45}, {106,45}, {104,45}, {107,45}, {107,46}, {107,47}, {106,47}, {106,48}, {106,49}, {105,49}, {105,50}, {105,51}, {106,51}, {107,51}, {108,51}, {108,52}, {107,52}, {106,52}, {105,52}, {109,52}, {110,52}, {110,53}, {111,52}, {112,51}, {113,51}, {111,51}, {113,50}, {114,50}, {115,50}, {116,49}, {116,48}, {116,47}, {116,46}, {115,46}, {115,45}, {115,44}, {115,43}, {114,43}, {113,43}, {112,43}, {112,42}, {111,42}, {113,42}, {114,42}, {110,42}, {110,41}, {109,41}, {108,41}, {108,42}, {107,42}, {107,43}, {106,44}, {106,43}, {108,43}, {109,42}, {107,44}, {108,45}, {109,44}, {109,43}, {110,43}, {108,44}, {111,43}, {109,45}, {110,44}, {111,44}, {112,44}, {111,45}, {110,46}, {110,47}, {111,46}, {112,45}, {114,44}, {114,45}, {113,46}, {113,47}, {114,46}, {113,44}, {112,46}, {114,47}, {113,48}, {113,49}, {114,49}, {114,48}, {112,47}, {115,48}, {115,49}, {115,47}, {113,45}, {111,47}, {109,46}, {110,45}, {108,46}, {106,46}, {107,48}, {108,48}, {109,48}, {110,48}, {109,47}, {106,50}, {109,50}, {110,49}, {107,49}, {107,50}, {108,50}, {110,50}, {111,49}, {112,49}, {109,51}, {110,51}, {112,50}, {112,48}, {111,50}, {111,48}, {108,49}, {108,47}, {109,49}, {51,61}, {51,60}, {51,59}, {50,59}, {50,58}, {49,58}, {49,57}, {48,57}, {48,58}, {47,58}, {47,57}, {47,56}, {47,55}, {47,54}, {46,54}, {46,53}, {47,53}, {47,52}, {48,52}, {49,52}, {49,51}, {50,51}, {51,51}, {51,50}, {52,50}, {53,50}, {53,49}, {54,49}, {55,49}, {55,48}, {56,48}, {56,49}, {56,50}, {57,50}, {57,51}, {57,52}, {58,52}, {58,53}, {59,53}, {59,54}, {59,55}, {60,55}, {60,56}, {60,57}, {59,57}, {58,57}, {58,58}, {57,58}, {56,58}, {55,59}, {54,59}, {54,60}, {53,60}, {52,60}, {52,61}, {56,59}, {56,57}, {56,56}, {55,56}, {54,56}, {55,57}, {57,57}, {57,56}, {58,56}, {57,55}, {56,55}, {59,56}, {58,55}, {58,54}, {57,53}, {55,54}, {55,55}, {57,54}, {56,52}, {55,52}, {54,53}, {55,53}, {56,53}, {56,51}, {55,50}, {55,51}, {54,51}, {54,52}, {54,50}, {53,51}, {52,51}, {52,52}, {52,53}, {53,53}, {51,52}, {50,52}, {49,53}, {49,54}, {50,54}, {51,54}, {51,53}, {53,52}, {50,53}, {48,53}, {48,54}, {48,55}, {49,55}, {49,56}, {48,56}, {50,57}, {51,57}, {51,58}, {52,58}, {52,59}, {53,59}, {54,58}, {55,58}, {53,58}, {54,57}, {52,56}, {51,56}, {50,56}, {53,56}, {53,57}, {52,57}, {50,55}, {51,55}, {52,55}, {53,55}, {54,55}, {56,54}, {54,54}, {53,54}, {52,54}, {24,55}, {24,56}, {24,54}, {23,55}, {24,57}, {25,58}, {25,59}, {26,59}, {26,60}, {27,60}, {27,61}, {27,62}, {28,62}, {28,63}, {29,63}, {28,61}, {25,57}, {26,57}, {26,58}, {27,58}, {28,58}, {29,57}, {28,57}, {27,57}, {28,56}, {29,56}, {28,55}, {28,54}, {27,55}, {26,55}, {25,55}, {27,54}, {26,56}, {25,56}, {27,56}, {27,59}, {28,60}, {29,62}, {30,62}, {30,61}, {31,61}, {32,61}, {33,61}, {33,60}, {32,60}, {29,61}, {29,60}, {29,59}, {30,59}, {30,58}, {31,58}, {32,58}, {33,58}, {28,59}, {30,60}, {30,63}, {31,63}, {31,64}, {31,65}, {32,65}, {32,66}, {31,62}, {31,66}, {32,67}, {30,65}, {29,64}, {30,66}, {30,64}, {31,67}, {31,68}, {32,68}, {32,69}, {32,70}, {33,70}, {33,71}, {33,72}, {34,72}, {34,73}, {35,73}, {35,74}, {35,75}, {36,75}, {37,75}, {37,74}, {37,73}, {36,73}, {36,72}, {36,74}, {35,72}, {35,71}, {34,71}, {34,70}, {34,69}, {33,69}, {33,68}, {33,67}, {33,66}, {53,139}, {53,140}, {54,140}, {55,140}, {56,140}, {57,140}, {57,141}, {58,141}, {59,141}, {60,141}, {60,142}, {60,143}, {60,144}, {61,144}, {61,145}, {60,145}, {60,146}, {60,147}, {59,147}, {58,147}, {57,147}, {56,147}, {55,147}, {54,148}, {54,149}, {53,149}, {53,150}, {52,150}, {52,151}, {52,152}, {51,152}, {51,151}, {50,151}, {49,150}, {48,150}, {48,149}, {47,149}, {47,148}, {48,148}, {48,147}, {49,147}, {49,146}, {50,146}, {50,145}, {51,144}, {51,143}, {51,142}, {52,142}, {52,141}, {52,140}, {55,141}, {56,141}, {58,142}, {57,142}, {54,141}, {53,141}, {54,142}, {56,142}, {59,143}, {58,143}, {57,143}, {56,144}, {57,144}, {58,144}, {59,144}, {56,143}, {56,145}, {57,146}, {58,146}, {59,145}, {57,145}, {58,145}, {59,146}, {59,142}, {55,142}, {53,142}, {55,143}, {53,143}, {52,143}, {52,144}, {53,144}, {54,144}, {55,144}, {54,143}, {52,145}, {53,145}, {53,146}, {54,146}, {55,146}, {56,146}, {55,145}, {54,145}, {52,146}, {51,147}, {51,148}, {50,149}, {50,148}, {51,146}, {51,145}, {50,147}, {49,148}, {49,149}, {50,150}, {52,149}, {53,148}, {53,147}, {54,147}, {52,148}, {51,149}, {51,150}, {52,147}, {58,135}, {59,135}, {60,135}, {61,135}, {62,135}, {63,135}, {64,135}, {65,135}, {66,135}, {66,136}, {65,136}, {64,136}, {63,136}, {62,136}, {61,136}, {60,136}, {59,136}, {66,137}, {67,137}, {68,137}, {69,137}, {69,138}, {70,138}, {71,138}, {72,138}, {73,138}, {74,138}, {75,139}, {76,139}, {76,140}, {75,140}, {74,139}, {77,140}, {77,141}, {78,141}, {79,141}, {80,141}, {81,141}, {81,142}, {81,143}, {80,143}, {80,142}, {82,143}, {83,143}, {83,142}, {82,142}, {82,141}, {80,140}, {79,140}, {79,139}, {78,139}, {77,139}, {77,138}, {76,138}, {75,137}, {74,137}, {73,137}, {73,136}, {72,136}, {71,136}, {71,135}, {70,135}, {69,136}, {70,137}, {71,137}, {72,137}, {70,136}, {78,140}, {75,138}, {73,139}, {68,136}, {68,135}, {68,134}, {68,133}, {68,132}, {68,131}, {69,131}, {69,132}, {70,132}, {71,132}, {72,132}, {73,132}, {74,132}, {74,131}, {75,131}, {79,132}, {80,132}, {80,133}, {81,133}, {81,134}, {81,135}, {82,135}, {82,136}, {82,137}, {83,137}, {83,136}, {78,132}, {77,132}, {76,132}, {75,132}, {74,133}, {73,133}, {72,133}, {71,133}, {70,133}, {73,134}, {74,134}, {75,134}, {75,135}, {76,135}, {75,133}, {76,133}, {77,133}, {78,133}, {79,133}, {80,134}, {79,134}, {76,134}, {77,134}, {78,134}, {79,135}, {80,135}, {78,135}, {77,135}, {77,136}, {78,136}, {79,136}, {79,137}, {80,137}, {81,137}, {81,138}, {82,138}, {82,139}, {81,136}, {80,136}, {83,138}, {84,138}, {84,139}, {83,139}, {83,140}, {84,140}, {85,140}, {85,139}, {85,138}, {86,138}, {5,81}, {6,81}, {4,81}, {12,101}, {13,101}, {11,100}, {12,100}, {14,101}, {15,101}, {15,100}, {16,100}, {13,100}, {14,100}, {12,99}, {13,99}, {14,99}, {15,99}, {20,103}, {19,103}, {18,103}, {17,103}, {17,102}, {16,102}, {16,101}, {20,102}, {19,102}, {18,102}, {26,102}, {27,102}, {28,102}, {28,103}, {27,103}, {26,103}, {18,67}, {19,67}, {19,68}, {23,73}, {23,74}, {22,74}, {36,85}, {37,85}, {38,85}, {39,85}, {40,85}, {41,85}, {38,88}, {39,88}, {39,87}, {40,87}, {40,86}, {41,111}, {41,112}, {41,113}, {41,114}, {24,116}, {24,115}, {25,115}, {27,116}, {28,116}, {29,118}, {30,118}, {31,118}, {32,118}, {28,118}, {36,122}, {36,123}, {36,124}, {36,125}, {36,126}, {36,121}, {41,120}, {42,98}, {41,98}, {40,98}, {48,97}, {48,98}, {50,99}, {50,100}, {51,95}, {51,96}, {51,97}, {54,93}, {55,93}, {54,94}, {30,59}, {32,65}, {32,66}, {33,66}, {37,59}, {38,59}, {38,60}, {38,61}, {37,60}, {37,61}, {39,60}, {40,60}, {41,60}, {42,60}, {43,60}, {44,60}, {45,60}, {47,77}, {48,77}, {49,77}, {48,76}, {62,79}, {61,79}, {60,79}, {60,78}, {62,83}, {61,83}, {59,87}, {58,87}, {58,88}, {59,88}, {59,86}, {61,85}, {60,86}, {60,87}, {60,88}, {60,85}, {62,85}, {40,97}, {39,97}, {39,96}, {38,96}, {38,95}, {37,95}, {46,109}, {46,110}, {45,110}, {47,109}, {48,109}, {49,109}, {49,108}, {49,107}, {50,109}, {51,109}, {51,110}, {52,110}, {53,110}, {53,111}, {54,111}, {55,111}, {56,111}, {58,110}, {59,110}, {60,110}, {61,110}, {62,110}, {57,110}, {56,110}, {61,104}, {61,103}, {61,102}, {61,101}, {62,101}, {62,102}, {62,103}, {61,106}, {61,105}, {61,114}, {61,113}, {62,113}, {63,113}, {48,131}, {50,131}, {49,131}, {48,147}, {48,146}, {49,146}, {43,135}, {43,134}, {44,133}, {43,133}, {62,152}, {61,152}, {61,156}, {60,156}, {61,155}, {72,158}, {71,158}, {70,158}, {84,150}, {84,149}, {84,148}, {84,147}, {84,151}, {70,123}, {69,123}, {68,123}, {80,123}, {81,123}, {82,123}, {83,123}, {64,111}, {65,111}, {66,111}, {67,111}, {68,111}, {69,111}, {70,111}, {69,112}, {69,113}, {77,112}, {77,113}, {77,114}, {64,101}, {65,101}, {66,101}, {67,101}, {68,101}, {69,101}, {70,101}, {71,101}, {72,101}, {73,101}, {73,100}, {74,100}, {75,100}, {76,100}, {77,100}, {78,100}, {78,99}, {78,98}, {78,97}, {78,96}, {78,95}, {78,94}, {79,98}, {80,98}, {79,89}, {78,89}, {80,89}, {74,93}, {75,93}, {76,93}, {77,93}, {78,93}, {81,84}, {80,84}, {79,84}, {78,84}, {77,84}, {76,84}, {77,83}, {58,63}, {58,64}, {57,64}, {56,64}, {55,64}, {59,64}, {63,69}, {63,70}, {63,71}, {63,72}, {63,73}, {65,72}, {65,71}, {64,71}, {62,71}, {61,71}, {60,71}, {59,71}, {63,74}, {63,75}, {63,76}, {64,76}, {65,76}, {66,76}, {67,76}, {68,76}, {69,76}, {66,77}, {66,78}, {66,79}, {80,67}, {81,67}, {82,67}, {69,51}, {69,52}, {69,53}, {69,54}, {70,53}, {71,53}, {71,54}, {71,55}, {72,55}, {72,56}, {72,57}, {72,58}, {73,58}, {73,59}, {73,60}, {74,60}, {74,61}, {74,62}, {74,63}, {75,63}, {76,63}, {77,63}, {78,63}, {79,63}, {80,63}, {65,39}, {65,40}, {65,41}, {65,42}, {69,39}, {69,38}, {76,38}, {76,37}, {75,37}, {75,36}, {75,38}, {82,34}, {82,35}, {82,36}, {84,48}, {84,49}, {83,48}, {83,49}, {79,50}, {79,51}, {79,52}, {78,52}, {80,52}, {81,52}, {86,48}, {86,47}, {86,46}, {86,45}, {86,44}, {86,43}, {86,42}, {84,40}, {84,41}, {85,40}, {86,40}, {87,40}, {88,40}, {89,40}, {90,40}, {91,40}, {86,41}, {87,41}, {87,39}, {87,38}, {88,38}, {88,37}, {88,36}, {88,35}, {88,34}, {88,33}, {85,48}, {90,41}, {90,42}, {89,55}, {89,56}, {83,77}, {84,96}, {83,96}, {81,96}, {82,96}, {97,91}, {97,92}, {97,93}, {97,94}, {97,90}, {101,83}, {101,82}, {100,82}, {100,81}, {100,80}, {101,84}, {94,75}, {94,76}, {98,67}, {84,130}, {84,129}, {84,128}, {84,127}, {84,126}, {84,125}, {83,130}, {85,130}, {86,130}, {87,130}, {88,130}, {89,139}, {89,138}, {88,138}, {87,138}, {86,138}, {85,138}, {84,138}, {83,138}, {95,139}, {95,140}, {95,141}, {94,141}, {93,141}, {93,140}, {92,140}, {91,140}, {90,140}, {89,140}, {96,139}, {97,139}, {97,138}, {98,138}, {98,137}, {99,137}, {100,137}, {101,137}, {101,136}, {102,136}, {103,136}, {103,135}, {103,134}, {103,133}, {103,132}, {102,132}, {102,133}, {104,136}, {105,136}, {106,136}, {107,136}, {108,136}, {109,136}, {110,136}, {111,136}, {101,132}, {100,132}, {99,132}, {98,132}, {97,132}, {96,132}, {95,132}, {92,134}, {93,134}, {94,134}, {94,133}, {93,133}, {92,133}, {91,133}, {94,132}, {93,132}, {92,132}, {91,132}, {90,132}, {92,151}, {91,151}, {92,150}, {92,149}, {92,148}, {93,156}, {93,155}, {93,154}, {93,153}, {93,151}, {93,152}, {94,153}, {95,153}, {97,153}, {98,153}, {99,153}, {100,153}, {101,153}, {102,153}, {103,153}, {96,153}, {120,119}, {120,118}, {121,118}, {125,115}, {124,115}, {124,116}, {123,116}, {123,117}, {122,117}, {121,117}, {129,119}, {129,120}, {128,120}, {127,121}, {126,121}, {126,122}, {125,122}, {127,120}, {128,119}, {125,121}, {132,109}, {132,108}, {132,107}, {131,107}, {131,106}, {131,105}, {132,105}, {132,106}, {133,105}, {133,104}, {134,104}, {134,103}, {134,102}, {135,102}, {136,102}, {136,101}, {137,101}, {137,100}, {138,100}, {139,100}, {139,99}, {140,99}, {140,98}, {141,98}, {141,108}, {140,108}, {140,109}, {140,110}, {140,111}, {140,112}, {140,113}, {140,114}, {143,103}, {144,103}, {144,104}, {114,96}, {113,96}, {112,96}, {115,96}, {112,87}, {111,87}, {110,87}, {112,81}, {111,81}, {112,80}, {123,85}, {123,84}, {123,83}, {123,82}, {123,81}, {122,94}, {123,94}, {124,94}, {125,94}, {126,94}, {126,93}, {127,93}, {128,93}, {129,93}, {130,93}, {131,93}, {132,93}, {133,93}, {134,93}, {134,94}, {135,94}, {136,94}, {137,94}, {138,94}, {139,94}, {140,94}, {141,94}, {122,93}, {124,85}, {125,85}, {126,85}, {126,92}, {126,91}, {126,90}, {126,89}, {126,88}, {126,87}, {126,86}, {108,76}, {108,75}, {109,75}, {109,76}, {109,78}, {109,77}, {119,69}, {120,69}, {120,70}, {119,70}, {120,71}, {120,72}, {120,73}, {120,74}, {125,64}, {125,65}, {126,65}, {119,56}, {119,54}, {119,53}, {119,55}, {105,67}, {105,66}, {105,65}, {105,64}, {105,63}, {105,62}, {105,61}, {106,63}, {107,63}, {108,63}, {109,63}, {110,63}, {111,63}, {111,62}, {111,61}, {112,61}, {112,60}, {112,59}, {106,52}, {106,53}, {106,54}, {106,55}, {106,56}, {106,57}, {106,58}, {106,59}, {113,39}, {114,39}, {114,40}, {114,41}, {114,42}, {115,42}, {114,38}, {113,38}, {111,32}, {111,31}, {111,30}, {111,29}, {111,28}, {111,27}, {111,26}, {120,28}, {120,29}, {121,29}, {122,29}, {123,29}, {124,29}, {123,36}, {124,36}, {125,36}, {126,36}, {123,35}, {136,35}, {135,35}, {134,35}, {133,36}, {132,36}, {131,36}, {130,36}, {129,36}, {133,35}, {136,40}, {135,40}, {134,40}, {133,40}, {132,40}, {131,40}, {130,40}, {136,41}, {136,42}, {136,43}, {136,44}, {136,45}, {139,48}, {139,47}, {143,52}, {143,51}, {135,48}, {134,48}, {134,49}, {134,50}, {133,50}, {132,50}, {131,50}, {135,47}, {135,46}, {132,51}, {132,52}, {132,56}, {131,56}, {130,55}, {131,55}, {131,54}, {132,54}, {132,53}, {139,58}, {140,58}, {141,58}, {131,76}, {132,76}, {133,76}, {133,75}, {134,75}, {135,75}, {136,75}, {137,75}, {138,75}, {139,75}, {134,76}, {135,76}, {140,84}, {139,84}, {138,84}, {137,84}, {150,85}, {151,84}, {152,84}, {151,85}, {154,76}, {154,77}, {153,77}, {151,70}, {150,70}, {149,70}, {150,69}, {150,68}, {150,67}, {150,66}, {151,66}, {149,66}, {148,66}, {160,72}, {161,72}, {162,72}, {163,72}, {163,73}, {163,74}, {163,75}, {163,76}, {138,26}, {138,25}, {139,25}, {139,24}, {139,23}, {139,22}, {139,21}, {139,20}, {139,19}, {139,18}, {139,17}, {138,24}, {138,23}, {138,22}, {145,35}, {145,36}, {145,37}, {146,37}, {145,19}, {145,18}, {145,17}, {145,16}, {145,15}, {150,16}, {150,15}, {150,14}, {165,12}, {165,11}, {165,10}, {157,20}, {158,20}, {159,20}, {159,21}, {160,20}, {160,21}, {158,26}, {158,25}, {158,24}, {158,23}, {158,22}, {158,21}, {157,26}, {157,27}, {156,27}, {155,27}, {154,27}, {171,20}, {171,21}, {170,21}, {172,20}, {167,17}, {167,16}, {168,16}, {169,16}, {170,16}, {171,16}, {171,17}, {172,17}, {173,17}, {173,16}, {173,15}, {173,14}, {173,13}, {173,12}, {173,11}, {173,10}, {173,9}, {173,8}, {173,7}, {172,30}, {172,29}, {172,28}, {171,28}, {171,27}, {171,26}, {172,27}, {163,32}, {163,33}, {163,34}, {154,33}, {155,33}, {155,34}, {155,35}, {155,36}, {164,32}, {175,32}, {175,33}, {175,34}, {175,35}, {175,36}, {175,37}, {175,38}, {175,39}, {175,40}, {175,42}, {175,43}, {175,44}, {175,45}, {175,47}, {174,47}, {174,48}, {174,49}, {174,50}, {174,51}, {174,52}, {174,53}, {175,54}, {175,55}, {175,56}, {175,57}, {175,58}, {175,60}, {175,61}, {175,62}, {175,63}, {174,64}, {174,65}, {174,66}, {174,67}, {174,68}, {174,63}, {175,59}, {174,54}, {175,46}, {175,41}, {163,71}, {163,70}, {163,69}, {163,68}, {163,67}, {163,66}, {163,65}, {163,64}, {164,64}, {165,64}, {166,64}, {168,64}, {169,64}, {170,64}, {171,64}, {172,64}, {173,64}, {167,64}, {178,25}, {178,26}, {178,27}, {178,28}, {178,29}, {177,28}, {177,27}, {177,26}, {179,25}, {179,26}, {178,24}, {178,23}, {184,43}, {184,44}, {185,44}, {185,45}, {185,46}, {185,47}, {185,48}, {185,49}, {185,51}, {185,52}, {185,53}, {185,54}, {185,55}, {185,56}, {185,57}, {185,58}, {185,59}, {185,50}, {183,43}, {182,43}, {181,43}, {180,43}, {179,43}, {178,43}, {177,43}, {176,43}, {184,57}, {183,57}, {182,57}, {181,57}, {180,57}, {179,57}, {178,57}, {177,57}, {176,57}, {191,38}, {191,37}, {191,36}, {192,37}, {193,37}, {194,37}, {195,37}, {196,37}, {197,37}, {193,33}, {194,33}, {194,32}, {193,32}, {195,32}, {196,32}, {197,32}, {194,34}, {194,35}, {194,36}, {194,27}, {194,28}, {194,29}, {194,30}, {194,31}, {192,21}, {193,20}, {194,20}, {195,20}, {196,20}, {197,20}, {192,20}, {194,21}, {194,22}, {194,23}, {194,24}, {194,25}, {194,26}, {177,15}, {177,14}, {177,13}, {177,12}, {177,11}, {177,10}, {177,9}, {177,8}, {177,7}, {177,6}, {176,15}, {175,15}, {174,15}, {190,12}, {189,11}, {190,11}, {189,10}, {189,9}, {189,8}, {189,7}, {189,6}, {189,5}, {189,4}, {189,3}, {188,10}, {187,10}, {186,10}, {185,10}, {184,10}, {183,10}, {182,10}, {181,10}, {180,10}, {179,10}, {178,10}, {176,12}, {175,12}, {174,12}, {0,81}, {0,82}, {0,83}, {0,84}, {0,85}, {0,86}, {0,87}, {0,88}, {0,89}, {0,90}, {0,91}, {0,92}, {0,93}, {0,95}, {0,94}, {0,96}, {0,97}, {0,98}, {0,99}, {0,100}, {0,101}, {0,102}, {0,103}, {0,104}, {0,105}, {0,106}, {0,107}, {0,109}, {0,108}, {0,110}, {43, 123}, {44, 123}, {45, 123}, {46, 123}, {92, 69}, {92, 70}, {93, 70}, {93, 71}, {94, 71}, {94, 72}, {94, 73}, {95, 73}
};
std::vector<std::pair<int, int>> entrances = {
{23, 74}, {30, 59}, {39, 93}, {48,77}, {59,78}, {49,99}, {60,105}, {51,102}, {55,93}, {77,82}, {86,75}, {95,85}, {98,68}, {118,69}, {113,59}, {68,73}, {78,50}, {82,36}, {86,49}, {111,32}, {15,99}, {32,109}, {41,120}, {47, 123}, {49, 130}, {60,113}, {74,93}, {77,101}, {70,124}, {75,128}, {92,135}, {41,137}, {70,151}, {81,148}, {91,151}, {120,119}, {143,103}, {121,93}, {123,85}, {136,76}, {154,75}, {138,58}, {136,41}, {136,35}, {157,29}, {165,12}, {146,36}, {179,24}, {179,26}, {158,24}
};
for(int row = 0; row < 200; row++) {
std::vector<Block> rowData;
for(int col = 0; col < 168; col++) {
Block item = Block(row, col, 5);
rowData.push_back(item);
}
map.push_back(rowData);
}
for(int row = 0; row < 200; row++) {
for(int col = 0; col < 168; col++) {
Block* currNode = &map[row][col];
int prevRow = row - 1;
int nextRow = row + 1;
int prevCol = col - 1;
int nextCol = col + 1;
if(prevRow >= 0) {
currNode->setNeighbour(&map[row-1][col]);
}
if(nextRow < 200) {
currNode->setNeighbour(&map[row+1][col]);
}
if(prevCol >= 0) {
currNode->setNeighbour(&map[row][col-1]);
}
if(nextCol < 168) {
currNode->setNeighbour(&map[row][col+1]);
}
}
}
for(std::pair<int, int> item: path) {
Block* node = &map[item.first][item.second];
node->setType(1);
}
for(std::pair<int, int> item: path2) {
Block* node = &map[item.first][item.second];
node->setType(1);
}
for(std::pair<int, int> item: path3) {
Block* node = &map[item.first][item.second];
node->setType(1);
}
for(std::pair<int, int> item: entrances) {
Block* node = &map[item.first][item.second];
node->setType(1);
}
}
}
void setMap(std::vector<std::vector<Block>> map);
std::vector<std::vector<Block>> getMap();
Block* getNode(int row, int col);
void setFloor(int level);
void addEntrance(Block* entrance);
void addExit(Block* exit);
int getFloor();
// void setStartPosCost(int cost);
void setStartPoint(Block* startPoint);
void setTargetPoint(Block* targetPoint);
void setStartPoint(int row, int col);
void setTargetPoint(int row, int col);
Block* getStartPoint();
Block* getTargetPoint();
Block* findBlockInMap(int row, int col);
std::vector<std::pair<int, int>> getWallsInfo();
void resetMapBlocks();
private:
// this is the map for this flat floor
std::vector<std::vector<Block>> map;
// this indicate which floor this map located inside building
int floor;
// this is the specific building map
std::vector<Block*> entrances;
// this is the specific building map
std::vector<Block*> exits;
Block* startPoint;
Block* targetPoint;
};
#endif