func_code_string: #include <bits/stdc++.h>   struct pt {     double x, y;   } p[305], q[305];   int k, n, cnt, cnt2;   double y[301][302], ans[301], prod[305];   double area() {     double ans = 0;     for (int i = 1; i <= cnt; i++)       ans += (p[i].x * p[i % cnt + 1].y - p[i].y * p[i % cnt + 1].x) / 2;     return ans;   }   int main() {     scanf( %d%d , &n, &k);     for (int i = 1; i <= n; i++)       for (int j = 1; j <= k + 1; j++) scanf( %lf , &y[i][j]);     for (int t = 1; t <= k; t++) {       cnt = 4;       p[1].x = 0, p[1].y = 1001, p[2].x = 0, p[2].y = 0;       p[3].x = 1, p[3].y = 0, p[4].x = 1, p[4].y = 1001;       double s = area(), tmp;       for (int l = 1; l <= n; l++) {         cnt2 = 0;         for (int i = 1; i <= cnt; i++) {           double x1 = 1 - p[i].x, x2 = p[i].x, y1 = p[i].y - y[l][t],                  y2 = y[l][t + 1] - p[i].y;           prod[i] = x1 * y2 - x2 * y1;         }         for (int i = 1; i <= cnt; i++) {           if (prod[i] <= 0) {             if (i > 1)               if (prod[i - 1] > 0) {                 q[++cnt2].x = (p[i - 1].x * prod[i] - p[i].x * prod[i - 1]) /                               (prod[i] - prod[i - 1]);                 q[cnt2].y = (p[i - 1].y * prod[i] - p[i].y * prod[i - 1]) /                             (prod[i] - prod[i - 1]);               }             q[++cnt2] = p[i];           } else if (prod[i - 1] <= 0) {             q[++cnt2].x = (p[i - 1].x * prod[i] - p[i].x * prod[i - 1]) /                           (prod[i] - prod[i - 1]);             q[cnt2].y = (p[i - 1].y * prod[i] - p[i].y * prod[i - 1]) /                         (prod[i] - prod[i - 1]);           }         }         cnt = cnt2;         for (int i = 1; i <= cnt2; i++) p[i] = q[i];         tmp = area();         ans[l] += s - tmp;         s = tmp;       }     }     for (int i = 1; i <= n; i++) printf( %lf n , ans[i]);   }   