func_code_string: #include <bits/stdc++.h>   int deg[25];   double g[25][25];   double p[510][510];   int main() {     int n, m, a, b;     scanf( %d%d%d%d , &n, &m, &a, &b);     a--;     b--;     int s = n * n;     int x, y;     for (int i = 0; i < m; i++) {       scanf( %d%d , &x, &y);       x--;       y--;       deg[x]++;       deg[y]++;       g[x][y] = g[y][x] = 1;     }     for (int i = 0; i < n; i++) {       scanf( %lf , &g[i][i]);       for (int j = 0; j < n; j++) {         if (i != j) {           g[i][j] *= (1 - g[i][i]) / (double)deg[i];         }       }     }     for (int i = 0; i < s; i++) {       x = i / n;       y = i % n;       p[i][i] = -1;       if (x != y) {         for (int j = 0; j < n; j++) {           for (int k = 0; k < n; k++) {             p[j * n + k][i] += g[x][j] * g[y][k];           }         }       }     }     p[n * a + b][s] = -1;     double tmp;     for (int i = 0; i < s; i++) {       if (fabs(p[i][i]) < 1e-10)         for (int j = i + 1; j < s; j++)           if (fabs(p[j][i]) > 1e-10)             for (int k = i; k < s + 1; k++) std::swap(p[i][k], p[j][k]);       tmp = p[i][i];       for (int k = i; k < s + 1; k++) p[i][k] /= tmp;       for (int j = 0; j < s; j++)         if (i != j && fabs(tmp = p[j][i]) > 1e-10)           for (int k = i; k < s + 1; k++) p[j][k] -= tmp * p[i][k];     }     for (int i = 0; i < n; i++) {       printf( %.9lf  , p[n * i + i][s]);     }     return 0;   }   