回答編集履歴
1
修正
answer
CHANGED
@@ -8,11 +8,9 @@
|
|
8
8
|
int main() {
|
9
9
|
using namespace std;
|
10
10
|
|
11
|
-
// row行 col列 の神経衰弱
|
12
11
|
int row = 6;
|
13
12
|
int col = 8;
|
14
13
|
assert( row*col % 2 == 0 );
|
15
|
-
|
16
14
|
int num = row * col / 2;
|
17
15
|
int* data = new int[num*2];
|
18
16
|
// 「0~num-1 で埋める」を二回やって
|
@@ -22,15 +20,10 @@
|
|
22
20
|
shuffle(data, data+num*2, random_device());
|
23
21
|
|
24
22
|
// row行col列の行列を用意して、ナカミをdataで埋める
|
25
|
-
int i = 0;
|
26
23
|
int** matrix = new int* [row];
|
27
24
|
for ( int r = 0; r < row; ++r ) {
|
28
|
-
matrix[r] =
|
25
|
+
matrix[r] = data + r*col;
|
29
|
-
for ( int c = 0; c < col; ++c ) {
|
30
|
-
matrix[r][c] = data[i++];
|
31
|
-
}
|
32
26
|
}
|
33
|
-
delete[] data; // dataは用済み
|
34
27
|
|
35
28
|
// できたかな
|
36
29
|
for (int r = 0; r < row; ++r) {
|
@@ -41,9 +34,7 @@
|
|
41
34
|
}
|
42
35
|
|
43
36
|
// あとしまつ
|
44
|
-
for (int r = 0; r < row; ++r) {
|
45
|
-
delete[] matrix[r];
|
46
|
-
}
|
47
37
|
delete[] matrix;
|
38
|
+
delete[] data;
|
48
39
|
}
|
49
40
|
```
|