题目链接
f=a*ln(x)+b*ln(y)+c*ln(z)+λ*(S-x-y-z)
fx’=a/x+λ;
fy’=b/y+λ;
fz’=c/z+λ;
fλ’=S-x-y-z;
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <cmath>
using namespace std;
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <set>
#include <map>
#define cler(arr, val) memset(arr, val, sizeof(arr))
typedef long long LL;
const int MAXN = 191;
const int MAXM = 11111;
const int INF = 0x3f3f3f3f;
const LL mod =1000000007;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
int s,a,b,c;
int main()
{
cin>>s>>a>>b>>c;
int sum=a+b+c;
if(sum==0)
printf("%d 0 0\n",s);
else
printf("%.10lf %.10lf %.10lf\n",a*1.0/sum*s,b*1.0/sum*s,c*1.0/sum*s);
return 0;
}