func_code_string: #include <bits/stdc++.h>   using namespace std;   struct node {     int x, y;   };   node q[2][41000];   int n, k, len, b[210][2];   double p[210], dp[2][210][210];   double solve() {     if (n < len) return 0;     for (int i = 0; i < 2; ++i)       for (int j = 0; j < n + 1; ++j)         for (int k = 0; k < 201; ++k) dp[i][j][k] = -1;     int pre = 1, now = 0, cnt[2] = {0, 0};     node cur, nex;     cur.x = 0;     cur.y = k;     q[0][cnt[0]++] = cur;     dp[0][0][k] = 1;     for (int i = 1; i <= n; ++i) {       now = pre;       pre = 1 - pre;       cnt[now] = 0;       for (int j = 0; j < cnt[pre]; ++j) {         cur = q[pre][j];         if (dp[now][cur.x][cur.y] < 0) {           q[now][cnt[now]++] = cur;           dp[now][cur.x][cur.y] = dp[pre][cur.x][cur.y] * (1 - p[i]);         } else           dp[now][cur.x][cur.y] += dp[pre][cur.x][cur.y] * (1 - p[i]);         if (b[i][0] != -1) {           nex.x = cur.x + 1;           nex.y = min(cur.y + b[i][0], 200);           if (dp[now][nex.x][nex.y] < 0) {             q[now][cnt[now]++] = nex;             dp[now][nex.x][nex.y] = dp[pre][cur.x][cur.y] * p[i];           } else             dp[now][nex.x][nex.y] += dp[pre][cur.x][cur.y] * p[i];         } else if (cur.y > 0) {           nex.x = cur.x + 1;           nex.y = cur.y - 1;           if (dp[now][nex.x][nex.y] < 0) {             q[now][cnt[now]++] = nex;             dp[now][nex.x][nex.y] = dp[pre][cur.x][cur.y] * p[i];           } else             dp[now][nex.x][nex.y] += dp[pre][cur.x][cur.y] * p[i];         }         dp[pre][cur.x][cur.y] = -1;       }     }     double ans = 0;     for (int j = len; j <= n; ++j)       for (int i = 0; i <= 200; ++i)         if (dp[now][j][i] > 0) ans += dp[now][j][i];     return ans;   }   int cmp(const void *a, const void *b) {     int *c = (int *)a, *d = (int *)b;     return d[0] - c[0];   }   int main() {     scanf( %d %d %d , &n, &len, &k);     for (int i = 1; i <= n; ++i) scanf( %d , &b[i][1]);     for (int i = 1; i <= n; ++i) scanf( %d , &b[i][0]);     qsort(&b[1], n, sizeof(b[0]), cmp);     for (int i = 1; i <= n; ++i) p[i] = (b[i][1] + 0.0) / 100;     printf( %.9lf n , solve());     return 0;   }   