func_code_string: #include <bits/stdc++.h>   using namespace std;   struct Position {     int r, c, t;     Position(int r, int c, int t) {       this->r = r;       this->c = c;       this->t = t;     }   };   int main() {     vector<string> board;     vector<pair<int, int> > s;     for (int r = 0; r < 8; r++) {       string line;       cin >> line;       board.push_back(line);       for (int c = 0; c < 8; c++)         if (line[c] ==  S ) s.push_back(make_pair(r, c));     }     queue<Position> que;     que.push(Position(7, 0, 0));     int dr[] = {1, 1, 0, -1, -1, -1, 0, 1, 0};     int dc[] = {0, 1, 1, 1, 0, -1, -1, -1, 0};     while (!que.empty()) {       Position pos = que.front();       que.pop();       if (pos.t > 7) break;       for (int i = 0; i < 9; i++) {         int nr = pos.r + dr[i];         int nc = pos.c + dc[i];         if (0 <= nr && nr < 8 && 0 <= nc && nc < 8) {           bool isCollision = false;           for (int j = 0; j < (int)s.size(); j++) {             if ((nr == s[j].first + pos.t && nc == s[j].second) ||                 (nr == s[j].first + pos.t + 1 && nc == s[j].second)) {               isCollision = true;               break;             }           }           if (!isCollision) {             que.push(Position(nr, nc, pos.t + 1));           }         }       }     }     cout << (que.empty() ?  LOSE  :  WIN ) << endl;   }   