PROBLEM LINK:
Practice
Contest: Division 1
Contest: Division 2
Contest: Division 3
Contest: Division 4
Author: notsoloud
Tester: airths
Editorialist: iceknight1093
DIFFICULTY:
TBD
PREREQUISITES:
None
PROBLEM:
Chef can teach a 1-hr class for X rupees, or a 2-hr class for Y rupees.
What’s the maximum amount of money Chef can earn in N hours?
EXPLANATION:
Note that if 2\cdot X \geq Y, Chef will earn more by holding two 1-hr classes rather than a single 2-hr class.
So,
- If 2\cdot X \geq Y, Chef will never hold a 2-hr class.
His total earnings will be N\cdot X. - If 2\cdot X \lt Y, it’s always better for Chef to hold a 2-hr class when possible.
So,- If N is even, Chef will hold \frac{N}{2} 2-hr classes, earning Y\cdot \frac{N}{2} in total.
- If N is odd, Chef will hold \left\lfloor\frac{N}{2}\right\rfloor 2-hr classes, and then a single 1-hr class, earning Y\cdot \left\lfloor\frac{N}{2}\right\rfloor + X in total.
TIME COMPLEXITY:
\mathcal{O}(1) per testcase.
CODE:
Editorialist's code (Python)
for _ in range(int(input())):
n, x, y = map(int, input().split())
ans = x*(n%2) + (n//2)*max(y, 2*x)
print(ans)