func_code_string: #include <bits/stdc++.h>   using namespace std;   double us1[210];   double us2[210];   int deal(double *us, int s, int e, int p) {     int flag = 0;     for (int i = 1; i <= 200; i++) {       if (us[i] < 1e-4 / 200.) continue;       double dd = us[i] * (100 - p) / 100.;       dd /= (e - s + 1);       us[i] = us[i] / 100. * p;       flag = 1;       for (int ss = s; ss <= e; ss++) {         us[max(i - ss, 0)] += dd;       }     }     return flag;   }   int main() {     int hp1, t1, s1, e1, p1;     int hp2, t2, s2, e2, p2;     cin >> hp1 >> t1 >> s1 >> e1 >> p1;     cin >> hp2 >> t2 >> s2 >> e2 >> p2;     if (p1 == 100) {       cout << 0.0;       return 0;     }     if (p2 == 100) {       cout << 1.0;       return 0;     }     int nt1 = 0, nt2 = 0;     for (int i = 0; i <= 200; i++) {       us1[i] = 0.;       us2[i] = 0.;     }     us1[hp1] = 1.;     us2[hp2] = 1.;     double ret = 0;     while (1) {       if (nt1 <= nt2) {         nt1 += t1;         deal(us2, s1, e1, p1);         ret += (1. - us1[0]) * us2[0];         us2[0] = 0;       } else if (nt1 > nt2) {         nt2 += t2;         if (!deal(us1, s2, e2, p2)) break;       }     }     cout << ret << endl;     return 0;   }   