14b2t

ア #include <stdbool.h>
イ #include <stdio.h>
ウ #define H 6
エ #define W 8
オ int a[H][W];
キ void move(int i, int j, int v, bool *chg) { 
セ   if(j < 0 || j >= H || i < 0 || i >= W) { return; }
シ   if(a[j][i] >= 0 && a[j][i] <= v) { return; }
テ   a[j][i] = v;
チ   *chg = true;
ク } 
カ int main(void) { 
ソ   int i, j, max = 0; bool chg = true;
ツ   a[0][0] = 0;
コ   while(chg) { 
タ     chg = false;
サ     for(j = 0; j < H; ++j) for(i = 0; i < W; ++i) { 
ニ       move(i+1, j+1, a[j][i]+1, &chg); 
ハ       move(i-2, j-1, a[j][i]+1, &chg); 
ク     } 
ク   } 
サ   for(j = 0; j < H; ++j) for(i = 0; i < W; ++i) { 
ス     if(a[j][i] > max) { max = a[j][i]; }
ク   } 
ヒ   printf("%d\n", max);
ケ   return 0;
ク } 
----------
ア #include <stdbool.h>
イ #include <stdio.h>
ウ #define H 6
エ #define W 8
オ int a[H][W];
キ void move(int i, int j, int v, bool *chg) { 
セ   if(j < 0 || j >= H || i < 0 || i >= W) { return; }
シ   if(a[j][i] >= 0 && a[j][i] <= v) { return; }
テ   a[j][i] = v;
チ   *chg = true;
ク } 
カ int main(void) { 
ソ   int i, j, max = 0; bool chg = true;
ツ   a[0][0] = 0;
コ   while(chg) { 
タ     chg = false;
サ     for(j = 0; j < H; ++j) for(i = 0; i < W; ++i) { 
ハ       move(i-2, j-1, a[j][i]+1, &chg); 
ニ       move(i+1, j+1, a[j][i]+1, &chg); 
ク     } 
ク   } 
サ   for(j = 0; j < H; ++j) for(i = 0; i < W; ++i) { 
ス     if(a[j][i] > max) { max = a[j][i]; }
ク   } 
ヒ   printf("%d\n", max);
ケ   return 0;