func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e5 + 100;   struct node {     int u, v, w, f, nxt;     node() {}     node(int u, int v, int w, int f, int nxt)         : u(u), v(v), w(w), f(f), nxt(nxt) {}   } e[N << 2];   int h[N], idx = 1;   void link(int x, int y, int w) {     e[++idx] = node(x, y, w, 1, h[x]);     h[x] = idx;     e[++idx] = node(y, x, -w, 0, h[y]);     h[y] = idx;   }   int dis[N], pre[N];   bool vis[N];   int n, m;   int Mincost = 0;   int spfa() {     memset(dis, 0x3f, sizeof dis);     memset(vis, 0, sizeof vis);     memset(pre, 0, sizeof pre);     queue<int> q;     while (q.size()) q.pop();     q.push(1);     dis[1] = 0;     while (q.size()) {       int t = q.front();       q.pop();       vis[t] = 0;       for (int i = h[t]; i; i = e[i].nxt) {         int v = e[i].v, w = e[i].w;         if (e[i].f && dis[v] > dis[t] + w) {           dis[v] = dis[t] + w;           pre[v] = i;           if (vis[v] == 0) {             vis[v] = 1;             q.push(v);           }         }       }     }     if (dis[n] == 0x3f3f3f3f) return 0;     Mincost += dis[n];     for (int i = pre[n]; i; i = pre[e[i].u]) e[i].f--, e[i ^ 1].f++;     return 1;   }   int main() {     cin >> n >> m;     for (int i = 1; i <= m; i++) {       int x, y, z;       cin >> x >> y >> z;       link(x, y, z);     }     vector<int> v;     v.clear();     while (spfa()) {       v.push_back(Mincost);     }     int m;     cin >> m;     while (m--) {       int x;       cin >> x;       double ans = 1e18;       for (int i = 0; i < v.size(); i++)         ans = min(ans, 1.0 * (v[i] + x) / (i + 1));       printf( %.10f n , ans);     }     return 0;   }   