समस्या
A payroll system treats every employee as an Employee with a WeeklyPay() method, and each kind of employee overrides it.
Each employee is written as:
salaried <annual>: earns annual / 52.hourly <rate> <hours>: earns rate × hours for the first 40 hours and 1.5 × rate for every hour beyond 40.commission <base> <rate> <sales>: earns base + rate × sales.
Implement weekly_payroll(employees).
Input
employees: The employees. Numbers may have decimals.
Output
Return the total weekly pay. Answers within 1e-6 are accepted.
सीमाएँ
0 ≤ number of employees ≤ 10,000
All numbers are between 0 and 10^7; hours ≤ 100
उदाहरण
इनपुट:
employees = ["salaried 52000", "hourly 20 45"]
अपेक्षित आउटपुट:
expected = 1950.0
इनपुट:
std::vector<std::string> employees = {"salaried 52000", "hourly 20 45"};
अपेक्षित आउटपुट:
double expected = 1950.0;
इनपुट:
string[] employees = new string[] {"salaried 52000", "hourly 20 45"};
अपेक्षित आउटपुट:
double expected = 1950.0;
व्याख्या
The salaried employee earns 52000 / 52 = 1000. The hourly one earns 20 × 40 + 30 × 5 = 950. Total 1950.
इनपुट:
employees = ["commission 300 0.1 2500"]
अपेक्षित आउटपुट:
expected = 550.0
इनपुट:
std::vector<std::string> employees = {"commission 300 0.1 2500"};
अपेक्षित आउटपुट:
double expected = 550.0;
इनपुट:
string[] employees = new string[] {"commission 300 0.1 2500"};
अपेक्षित आउटपुट:
double expected = 550.0;
व्याख्या
300 + 0.1 × 2500 = 550.
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
Handle each employee type with its own formula.
संकेत 2
Hourly pay is normal for the first 40 hours and 1.5 times the rate after that.
संकेत 3
Keep decimals: salaries divided by 52 rarely give whole numbers.
अपेक्षित जटिलता
O(number of employees) time, O(1) extra space
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।