前提・実現したいこと
10,9,8,7,6,5,6,7,8,9,
9,8,7,6,5,4,5,6,7,8,
8,7,6,5,4,3,4,5,6,7,
7,6,5,4,3,2,3,4,5,6,
6,5,4,3,2,1,2,3,4,5,
5,4,3,2,1,0,1,2,3,4,
6,5,4,3,2,1,2,3,4,5,
7,6,5,4,3,2,3,4,5,6,
8,7,6,5,4,3,4,5,6,7,
9,8,7,6,5,4,5,6,7,8,
発生している問題・エラーメッセージ
エラーメッセージ 95,93,91,89,87,85,96,97,98,99, 94,92,90,88,86,84,83,82,81,80, 75,73,71,69,67,65,76,77,78,79, 74,72,70,68,66,64,63,62,61,60, 35,29,23,17,11,5,41,47,53,59, 30,24,18,12,6,0,36,42,48,54, 31,25,19,13,7,1,37,43,49,55, 32,26,20,14,8,2,38,44,50,56, 33,27,21,15,9,3,39,45,51,57, 34,28,22,16,10,4,40,46,52,58, ### 該当のソースコード ```C++ ソースコード using MapData = std::vector<std::vector<int>>; void A(MapData& range, int x, int y) { range[y][x] = 0; MapData result(range); B(range, result, x, y, 0); } void B(MapData& range, const MapData& mapData, int x, int y, int move) { if (range[y][x] < 0) { move -= mapData[y][x]; range[y][x] = move; } int up = y + 1; int down = y - 1; int left = x - 1; int right = x + 1; if (up < (int)range.size() && range[up][x] < range[y][x]) { B(range, mapData, x, up, move); } if (down >= 0 && range[down][x] < range[y][x]) { B(range, mapData, x, down, move); } if (left >= 0 && range[y][left] < range[y][x]) { B(range, mapData, left, y, move); } if (right < (int)range[0].size() && range[y][right] < range[y][x]) { B(range, mapData, right, y, move); } } 以上の通りです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/16 17:31
2018/06/16 17:56 編集