f312. 1. 人力分配
解題
題目有提計算利潤的公式:
- ${Y_1}={A_1} \times {X_1}^2+{B_1} \times {X_1}+{C_1}$
- ${Y_2}={A_2} \times {X_2}^2+{B_2} \times {X_2}+{C_2}$
我們有$n$員工要進行查找,${X_1}$跟${X_2}$都可以是1~n並且是互補的,我們可以用for迴圈去查找,並且比較大小時要把預設的值設為負無限大(因為要用max函式)
AC Code
python
from sys import stdin
a1,b1,c1=map(int,stdin.readline().strip().split())
a2,b2,c2=map(int,stdin.readline().strip().split())
n=int(stdin.readline().strip())
ans=float('-inf')
for i in range(0,n+1):
x1=i
x2=n-i
y1=a1*(x1**2)+b1*x1+c1
y2=a2*(x2**2)+b2*x2+c2
ans=max(ans,y1+y2)
print(ans)
C++
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a1,a2,b1,b2,c1,c2,n;
int main(){
cin>>a1>>b1>>c1;
cin>>a2>>b2>>c2;
cin>>n;
ll ans=LLONG_MIN;
for(ll i=0;i<=n;i++){
ll x1=i;
ll x2=n-i;
ll y1=a1*(x1*x1)+b1*x1+c1;
ll y2=a2*(x2*x2)+b2*x2+c2;
ans=max(ans,y1+y2);
}
cout<<ans<<endl;
}