func_code_string: #include <bits/stdc++.h>   using namespace std;   void solve(double S, double a, double b, double c, double* result) {     if ((a == 0) && (b == 0) && (c == 0)) {       result[0] = S;     } else if ((a == 0) && (b == 0) && (c > 0)) {       result[2] = S;     } else if ((a == 0) && (b > 0) && (c == 0)) {       result[1] = S;     } else if ((a > 0) && (b == 0) && (c == 0)) {       result[0] = S;     } else if ((a == 0) && (b > 0) && (c > 0)) {       result[1] = S * b / (b + c);       result[2] = S * c / (b + c);     } else if ((a > 0) && (b == 0) && (c > 0)) {       result[0] = S * a / (a + c);       result[2] = S * c / (a + c);     } else if ((a > 0) && (b > 0) && (c == 0)) {       result[0] = S * a / (a + b);       result[1] = S * b / (a + b);     } else if ((a > 0) && (b > 0) && (c > 0)) {       result[0] = S * (a * (a + b)) / ((a + b) * (a + b + c));       result[1] = S * (b * (a + b)) / ((a + b) * (a + b + c));       result[2] = S * c / (a + b + c);     }   }   int main() {     unsigned int S(0), a(0), b(0), c(0);     double result[3] = {0.0, 0.0, 0.0};     cin >> S;     cin >> a;     cin >> b;     cin >> c;     solve((double)S, (double)a, (double)b, (double)c, result);     cout << std::fixed << std::setprecision(10) << result[0] <<     << result[1]          <<     << result[2];   }   