#include <stdio.h>
#include <stdlib.h>
int main(){
int i, j;
int a, b;
int **mat;
int num = 1; // 1から順に代入するための変数
// 2次元配列の動的確保
mat
= (int **)malloc(sizeof(int *) * a
); if (mat == NULL) {
return 0;
}
for (i = 0; i < a; i++) {
mat
[i
] = (int *)malloc(sizeof(int) * b
); if (mat[i] == NULL) {
return 0;
}
}
// 1から順に代入
for (i = 0; i < a; i++) {
for (j = 0; j < b; j++) {
mat[i][j] = num++;
}
}
// 表示(変更不要)
for (i = 0; i < a; i++) {
for (j = 0; j < b; j++) {
}
}
// メモリの解放
for (i = 0; i < a; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKCl7CiAgICBpbnQgaSwgajsKICAgIGludCBhLCBiOwogICAgaW50ICoqbWF0OwogICAgaW50IG51bSA9IDE7ICAvLyAx44GL44KJ6aCG44Gr5Luj5YWl44GZ44KL44Gf44KB44Gu5aSJ5pWwCgogICAgc2NhbmYoIiVkICVkIiwgJmEsICZiKTsKCiAgICAvLyAy5qyh5YWD6YWN5YiX44Gu5YuV55qE56K65L+dCiAgICBtYXQgPSAoaW50ICoqKW1hbGxvYyhzaXplb2YoaW50ICopICogYSk7CiAgICBpZiAobWF0ID09IE5VTEwpIHsKICAgICAgICBwcmludGYoIkVSUk9SXG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBmb3IgKGkgPSAwOyBpIDwgYTsgaSsrKSB7CiAgICAgICAgbWF0W2ldID0gKGludCAqKW1hbGxvYyhzaXplb2YoaW50KSAqIGIpOwogICAgICAgIGlmIChtYXRbaV0gPT0gTlVMTCkgewogICAgICAgICAgICBwcmludGYoIkVSUk9SXG4iKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgfQoKICAgIC8vIDHjgYvjgonpoIbjgavku6PlhaUKICAgIGZvciAoaSA9IDA7IGkgPCBhOyBpKyspIHsKICAgICAgICBmb3IgKGogPSAwOyBqIDwgYjsgaisrKSB7CiAgICAgICAgICAgIG1hdFtpXVtqXSA9IG51bSsrOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDooajnpLrvvIjlpInmm7TkuI3opoHvvIkKICAgIGZvciAoaSA9IDA7IGkgPCBhOyBpKyspIHsKICAgICAgICBmb3IgKGogPSAwOyBqIDwgYjsgaisrKSB7CiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgbWF0W2ldW2pdKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQoKICAgIC8vIOODoeODouODquOBruino+aUvgogICAgZm9yIChpID0gMDsgaSA8IGE7IGkrKykgewogICAgICAgIGZyZWUobWF0W2ldKTsKICAgIH0KICAgIGZyZWUobWF0KTsKCiAgICByZXR1cm4gMDsKfQo=