Language: C++

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int INF = 1e9;
const ll LINF = 1e18;
​
/*
<url:https://abc088.contest.atcoder.jp/tasks/abc088_d>
問題文============================================================
 縦 H マス, 横 W マスに広がるマス目があり, 各マスは白または黒で塗られている.
 上から i 番目で左から j 番目のマスを (i,j) で表す.
 すぬけ君は, このマス目を使って次のようなゲームをしたい.
 ゲームの開始時点ではマス (1,1) にゲームキャラクター「けぬす君」がいる.
 プレイヤーはけぬす君を上下左右の 4 方向のいずれかに 1 マスだけ動かすことを繰り返す.
 けぬす君が白いマスだけを通って (H,W) にたどり着けばゲームクリアとなる.
 
 ゲームを開始する前に, すぬけ君はいくつかの白いマス目の色を黒に変えることができる.
 ただし, マス (1,1) と (H,W) の色を変えることはできず,
 ゲームを開始するまでにすべての色の変更を行わなければならない.
 
 ゲームをクリアしたとき, ゲームの開始前にマスの色を変えた回数がすぬけ君のスコアとなる.
 そのとき, すぬけ君が取る可能性のある最大のスコアを求めなさい.
 ただし,すぬけ君がどのようにマス目の色を変えてもけぬす君が (H,W) にたどり着くことが出来ない場合、−1 と出力しなさい.
 
 ただし, 各マスの色の情報は文字 si,j として与えられる.
 マス (i,j) が最初白で塗られている場合 si,j は .
 であり, マス (i,j) が最初黒で塗られている場合 si,j は # である.
 
​
=================================================================
​
解説=============================================================
​
================================================================
*/
ll H,W;
inline ll ret_idx(int i,int j){
    return H*(i-1) + j;
}
int main(void) {
	cin.tie(0); ios::sync_with_stdio(false);
    cin >> H >> W;
    vector<vector<char>> masu(H+2,vector<char>(W+2,'#'));
int cnt  =0;
    for(int i = 1; i <= H;i++){
        for(int j = 1; j <=W;j++){
            cin >> masu[i][j];
if (masu[i][j] == ‘#’)cnt ++;
        }
    }
    int dx[4] = {1,0,-1,0};
    int dy[4] = {0,1,0,-1};
    vector<vector<int>> G(H*W+1,vector<int>(H*W+1,INF));
    for(int i = 1; i <= H*W;i++) G[i][i] = 0;
    for(int i = 1; i <= H; i++){
        for(int j = 1; j <= W; j++){
            if(masu[i][j] == '#') continue;
            for(int k = 0; k < 4;k++){
                int nx = i + dx[k], ny = j + dy[k];
                if(masu[nx][ny] == '#') continue;
                G[ret_idx(i,j)][ret_idx(nx,ny)] = G[ret_idx(nx,ny)][ret_idx(i,j)] = 1;
            }
        }
    }
  for(int i = 1 ; i <= H*W ; i++)for(int j= 1 ; j<= H*W ; j++)for(int k= 1 ; k<= H*W ; k++)G[j][k] = min(G[j][k],G[j][i]+G[i][k])
cout << H*W - G[1][H*W] -1 <<endl;
	return 0;
}

Compiler output:
a.cc:50:19: error: extended character ‘ is not valid in an identifier
   50 | if (masu[i][j] == ‘#’)cnt ++;
      |                   ^
a.cc:50:20: error: stray '#' in program
   50 | if (masu[i][j] == ‘#’)cnt ++;
      |                    ^
a.cc:50:21: error: extended character ’ is not valid in an identifier
   50 | if (masu[i][j] == ‘#’)cnt ++;
      |                     ^
a.cc:8:1: error: '\U0000200b' does not name a type
    8 | ​
      |  
a.cc: In function 'll ret_idx(int, int)':
a.cc:40:12: error: 'H' was not declared in this scope
   40 |     return H*(i-1) + j;
      |            ^
a.cc: In function 'int main()':
a.cc:44:12: error: 'H' was not declared in this scope
   44 |     cin >> H >> W;
      |            ^
a.cc:44:17: error: 'W' was not declared in this scope
   44 |     cin >> H >> W;
      |                 ^
a.cc:50:19: error: '\U00002018' was not declared in this scope
   50 | if (masu[i][j] == ‘#’)cnt ++;
      |                   ^
a.cc:50:20: error: expected ')' before '\U00002019'
   50 | if (masu[i][j] == ‘#’)cnt ++;
      |    ~               ^~
      |                    )
a.cc:67:130: error: expected ';' before 'cout'
   67 |   for(int i = 1 ; i <= H*W ; i++)for(int j= 1 ; j<= H*W ; j++)for(int k= 1 ; k<= H*W ; k++)G[j][k] = min(G[j][k],G[j][i]+G[i][k])
      |                                                                                                                                  ^
      |                                                                                                                                  ;
   68 | cout << H*W - G[1][H*W] -1 <<endl;
      | ~~~~