func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T1>   void deb(T1 e) {     cout << e << endl;   }   template <class T1, class T2>   void deb(T1 e1, T2 e2) {     cout << e1 <<     << e2 << endl;   }   template <class T1, class T2, class T3>   void deb(T1 e1, T2 e2, T3 e3) {     cout << e1 <<     << e2 <<     << e3 << endl;   }   template <class T1, class T2, class T3, class T4>   void deb(T1 e1, T2 e2, T3 e3, T4 e4) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 << endl;   }   template <class T1, class T2, class T3, class T4, class T5>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 << endl;   }   template <class T1, class T2, class T3, class T4, class T5, class T6>   void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5, T6 e6) {     cout << e1 <<     << e2 <<     << e3 <<     << e4 <<     << e5 <<     << e6          << endl;   }   template <class T>   T Abs(T x) {     return x > 0 ? x : -x;   }   template <class T>   inline T sqr(T x) {     return x * x;   }   long long Pow(long long B, long long P) {     long long R = 1;     while (P > 0) {       if (P % 2 == 1) R = (R * B);       P /= 2;       B = (B * B);     }     return R;   }   int BigMod(long long B, long long P, long long M) {     long long R = 1;     while (P > 0) {       if (P % 2 == 1) {         R = (R * B) % M;       }       P /= 2;       B = (B * B) % M;     }     return (int)R;   }   int n, l, k;   vector<int> prize;   vector<double> prb;   double dp[202][202][202];   double rec(int pos, int need_2_win, int bags) {     if (pos >= n) {       if (need_2_win >= l && bags + k >= need_2_win)         return 1.00;       else         return 0.0;     }     double &ret = dp[pos][need_2_win][bags];     if (ret > -.5) return ret;     ret = 0.0;     ret += (prb[pos] / 100.0) *            rec(pos + 1, need_2_win + 1, min(200, bags + prize[pos]));     ret += (max(100.0 - prb[pos], 0.0) / 100.0) * rec(pos + 1, need_2_win, bags);     return ret;   }   int main(void) {     double val;     int a;     scanf( %d %d %d , &n, &l, &k);     for (int i = 0; i < n; i++) {       scanf( %lf , &val);       prb.push_back(val);     }     for (int i = 0; i < n; i++) {       scanf( %d , &a);       prize.push_back(a + 1);     }     memset(dp, -1, sizeof dp);     double ans = rec(0, 0, 0);     printf( %.12lf n , ans);     return 0;   }   