func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = (int)1e4 + 10;   struct Edge {     int from, to, l, r, nxt;   } e[N << 2];   int head[N], cnt = 0;   int n, m, k, s1, s2, f, book[N];   long long d1[N], d2[N];   void add(int u, int v, int l, int r) {     e[++cnt] = (Edge){u, v, l, r, head[u]};     head[u] = cnt;   }   void spfa1(int s) {     memset(d1, 38, sizeof(d1));     memset(book, 0, sizeof(book));     book[s] = 1;     d1[s] = 0;     queue<int> q;     while (!q.empty()) q.pop();     q.push(s);     while (!q.empty()) {       int x = q.front();       q.pop();       book[x] = 0;       for (int i = head[x]; i; i = e[i].nxt) {         int v = e[i].to;         if (d1[v] > d1[x] + e[i].r) {           d1[v] = d1[x] + e[i].r;           if (!book[v]) book[v] = 1, q.push(v);         }       }     }   }   void spfa2(int s) {     memset(d2, 38, sizeof(d2));     memset(book, 0, sizeof(book));     book[s] = 1;     d2[s] = 0;     queue<int> q;     while (!q.empty()) q.pop();     q.push(s);     while (!q.empty()) {       int x = q.front();       q.pop();       book[x] = 0;       for (int i = head[x]; i; i = e[i].nxt) {         int v = e[i].to;         if (d2[v] > d2[x] + e[i].r) {           d2[v] = d2[x] + e[i].r;           if (!book[v]) book[v] = 1, q.push(v);         }       }     }   }   bool check(int fff) {     int fl = 1;     while (fl) {       fl = 0;       spfa1(s1), spfa2(s2);       for (int i = m + 1; i <= m + k; i++)         if (d1[e[i].from] < d2[e[i].from] && (e[i].l != e[i].r))           e[i].r = e[i].l, fl = 1;       if (d1[f] < d2[f] + fff) {         puts(fff ?  DRAW  :  WIN );         for (int i = m + 1; i <= m + k; i++) cout << e[i].r <<    ;         return 1;       }     }     return 0;   }   int main() {     cin >> n >> m >> k;     cin >> s1 >> s2 >> f;     for (int i = 1; i <= m; i++) {       int u, v, w;       scanf( %d%d%d , &u, &v, &w);       add(u, v, w, w);     }     for (int i = 1; i <= k; i++) {       int u, v, l1, l2;       scanf( %d%d%d%d , &u, &v, &l1, &l2);       add(u, v, l1, l2);     }     if (!check(0) && !check(1)) puts( LOSE );   }   