MaximumPenalty
SRM 800 · 2021-02-08 · by misof
Problem Statement
We have N jobs to complete. The jobs are numbered from 0 to N-1. Job i requires L[i] seconds of work. At any moment we can only work on one of the jobs.
As is usually the case, each job should be completed as soon as possible: the longer it takes, the worse the penalty will be. If job i is completed after t seconds, the penalty is calculated as follows:
penalty(i, t) = P[4i+0] * t0 + P[4i+1] * t1 + P[4i+2] * t2 + P[4i+3] * t3
All coefficients in P are nonnegative, and therefore the penalty is nondecreasing in time.
The penalty of the whole schedule is the maximum (not the sum!) over all jobs. Your goal is to minimize this penalty.
Clearly it doesn't pay off to jump back and forth between jobs: there is always an optimal schedule in which whenever you start working on a problem, you work on it until you complete it.
Such a schedule can then be described by a list of job numbers in the order in which you should perform them.
Find any such optimal schedule and return a
Notes
- For the constraints specified below the largest possible penalty fits into a signed 64-bit integer.
Constraints
- N will be between 1 and 1000, inclusive.
- L will contain N elements.
- Each element of L will be between 1 and 100, inclusive.
- P will contain 4*N elements.
- Each element of P will be between 0 and 8000, inclusive.
{7, 4, 1}
{0, 0, 0, 1,
0, 0, 2, 0,
0, 3, 0, 0}
Returns: {0, 2, 1 }
We have a long job with penalty function t^3, a medium job with penalty function 2t^2, and a short job with penalty 3t. If we do them in the order {0, 2, 1}, we will finish job 0 at 7 seconds, job 2 at 8 seconds, and then job 1 at 12 seconds. The individual penalties will be 7^3 = 343, 2*8^2 = 128, and 3*12 = 36. Thus, the overall penalty will be 343. This is optimal. There is one other optimal solution that would also be accepted.
{7, 4, 2, 5}
{47, 0, 0, 0,
47, 0, 0, 0,
47, 0, 0, 0,
47, 0, 0, 0}
Returns: {3, 2, 1, 0 }
All jobs have the same constant penalty. The order in which we do them does not matter.
{7, 4, 2, 5}
{0, 47, 0, 0,
0, 47, 0, 0,
0, 47, 0, 0,
0, 47, 0, 0}
Returns: {3, 2, 1, 0 }
All jobs have the same linear time penalty. Regardless of the order in which we perform them the penalty for the last job finished will always be 47*18, so again the order does not matter.
{7, 4, 2, 5}
{0, 7, 8, 15,
1, 6, 9, 14,
2, 5, 10, 13,
3, 4, 11, 12}
Returns: {0, 1, 2, 3 }
Any order in which job 3 is performed last is optimal.
{4, 9, 1, 11, 2, 10, 3, 1, 19, 8, 7, 15, 19, 3, 14, 1, 13, 15, 13, 7, 4, 17, 3, 2, 5, 13, 11, 15, 10, 15, 12, 20, 15, 20, 9, 8, 14, 12, 17, 5, 19, 20, 14, 12, 7, 5, 13, 10, 17, 14, 9, 1, 8, 15, 8, 15, 13, 14, 4, 1, 7, 4, 7, 13, 9, 1, 2, 16, 20, 1, 5, 17, 11, 9, 10, 18, 3, 20, 3, 18, 8, 11, 9, 16, 11, 18, 3, 1, 19, 4, 13, 15, 9, 10, 10, 14, 1, 3, 13, 5, 6, 9, 13, 12, 18, 7, 3, 14, 16, 15, 13, 10, 3, 16, 13, 16, 3, 3, 13, 15, 13, 5, 5, 8, 5, 4, 7, 11, 2, 3, 19, 20, 11, 9, 2, 19, 16, 16, 8, 20, 5, 16, 2, 1, 11, 7, 3, 16, 5, 13, 3, 12, 7, 7, 6, 10, 4, 7, 8, 12, 1, 13, 4, 9, 19, 8, 19, 2, 5, 20, 10, 11, 13, 7, 14, 5, 6, 5, 16, 18, 17, 12, 2, 6, 15, 20, 2, 10, 6, 10, 13, 14, 16, 8, 8, 8, 19, 20, 15, 5, 14, 1, 9, 4, 14, 5, 2, 18, 19, 11, 15, 13, 4, 12, 5, 8, 9, 4, 12, 7, 20, 2, 16, 18, 9, 2, 13, 13, 1, 3, 4, 18, 12, 5, 15, 20, 3, 3, 3, 11, 9, 2, 11, 9, 9, 16, 1, 15, 9, 19, 5, 2, 11, 13, 6, 6, 6, 8, 6, 19, 12, 1, 4, 4, 14, 6, 16, 20, 9, 11, 17, 7, 16, 7, 3, 12, 9, 11, 3, 14, 3, 1, 19, 16, 3, 3, 18, 1, 4, 17, 11, 7, 10, 2, 7, 19, 19, 11, 5, 12, 5, 5, 11, 4, 14, 12, 4, 7, 5, 5, 17, 10, 6, 19, 6, 8, 3, 7, 13, 14, 18, 6, 14, 7, 14, 4, 18, 1, 5, 17, 5, 14, 15, 13, 20, 12, 1, 15, 12, 5, 8, 11, 19, 1, 7, 10, 2, 3, 6, 16, 4, 15, 19, 8, 16, 18, 6, 1, 1, 18, 4, 11, 11, 2, 8, 16, 8, 9, 1, 10, 6, 3, 17, 2, 17, 7, 15, 11, 20, 10, 8, 12, 12, 13, 7, 10, 11, 1, 12, 6, 20, 2, 18, 2, 8, 3, 12, 6, 15, 12, 14, 11, 19, 15, 12, 20, 16, 7, 8, 14, 19, 2, 2, 5, 5, 13, 19, 2, 13, 3, 18, 14, 19, 8, 8, 1, 15, 7, 2, 4, 10, 19, 12, 16, 8, 17, 2, 18, 17, 6, 6, 4, 10, 9, 12, 3, 15, 12, 14, 5, 13, 5, 5, 18, 3, 13, 17, 16, 11, 4, 10, 13, 20, 9, 11, 4, 13, 19, 4, 4, 3, 6, 11, 12, 13, 9, 9, 17, 9, 12, 5, 11, 7, 11, 6, 13, 5, 15, 5, 5, 7, 12, 14, 1, 19, 14, 12, 19, 7, 14, 10, 12, 10, 18, 7, 5, 15, 4, 10, 4, 20, 8, 1, 13, 4, 7, 18, 17, 11, 9, 16, 10, 1, 2, 1, 1, 19, 17, 4, 18, 5, 12, 20, 12, 6, 8, 14, 20, 7, 20, 5, 7, 18, 7, 3, 9, 2, 5, 17, 9, 6, 14, 6, 9, 6, 15, 5, 11, 12, 16, 14, 19, 20, 18, 17, 13, 16, 15, 14, 13, 16, 12, 12, 9, 4, 19, 7, 5, 9, 1, 11, 4, 13, 11, 20, 19, 10, 2, 20, 4, 17, 18, 16, 16, 9, 1, 9, 9, 19, 6, 17, 16, 15, 16, 11, 13, 9, 1, 13, 8, 15, 10, 1, 7, 20, 6, 11, 19, 9, 15, 2, 3, 10, 11, 19, 9, 17, 8, 4, 4, 5, 17, 7, 7, 17, 18, 7, 20, 10, 7, 6, 2, 10, 12, 18, 6, 3, 7, 5, 15, 15, 4, 8, 16, 13, 1, 4, 11, 13, 12, 8, 12, 7, 8, 3, 7, 11, 14, 3, 14, 2, 7, 5, 6, 13, 12, 15, 17, 11, 2, 12, 3, 9, 9, 8, 6, 6, 19, 5, 6, 5, 4, 16, 1, 6, 1, 9, 14, 13, 8, 20, 5, 14, 8, 2, 4, 11, 2, 3, 9, 12, 20, 19, 8, 8, 16, 2, 13, 3, 1, 1, 5, 6, 5, 9, 11, 13, 9, 19, 7, 3, 4, 20, 14, 9, 14, 16, 14, 5, 17, 5, 11, 19, 18, 19, 10, 8, 11, 6, 3, 20, 9, 20, 5, 9, 18, 10, 17, 8, 10, 9, 17, 9, 3, 10, 14, 7, 12, 12, 6, 1, 12, 3, 11, 16, 14, 7, 13, 19, 6, 18, 1, 1, 11, 16, 4, 18, 12, 5, 4, 2, 11, 1, 17, 11, 19, 6, 8, 3, 16, 18, 20, 13, 12, 10, 15, 14, 16, 11, 19, 15, 3, 7, 6, 17, 17, 18, 3, 12, 13, 1, 11, 13, 3, 6, 17, 14, 10, 16, 11, 2, 1, 15, 3, 12, 12, 11, 11, 4, 7, 18, 13, 16, 14, 20, 8, 16, 7, 11, 12, 10, 19, 20, 20, 10, 1, 8, 9, 4, 2, 14, 7, 8, 17, 11, 19, 9, 14, 8, 15, 14, 5, 18, 5, 4, 8, 11, 14, 9, 18, 17, 9, 3, 10, 12, 6, 7, 1, 18, 17, 19, 15, 16, 6, 16, 18, 6, 14, 9, 8, 18, 18, 19, 5, 20, 5, 19, 8, 3, 19, 18, 9, 6, 12, 14, 2, 2, 7, 19, 5, 19, 7, 9, 6, 12, 11, 14, 2, 3, 18, 18, 7, 19, 12, 2, 8, 17, 6, 3, 17, 3, 20, 14, 6, 5, 16, 6, 5, 12, 15, 15, 3, 4, 17, 11, 11, 6, 17, 10, 5, 3, 9, 3, 4, 18, 15, 2, 12, 10, 1, 5, 12, 5, 2, 13, 17, 8, 14, 15, 3, 13, 1, 11, 11, 19, 7, 8, 7, 20, 16, 5, 9, 6, 11, 20, 1, 3, 12, 9, 5}
{5, 3, 9, 7, 10, 9, 3, 1, 8, 9, 6, 4, 10, 5, 7, 9, 7, 2, 4, 3, 7, 10, 0, 8, 4, 3, 4, 6, 3, 10, 3, 9, 3, 9, 9, 7, 7, 1, 1, 3, 3, 2, 7, 1, 8, 9, 4, 4, 4, 8, 1, 4, 4, 4, 2, 8, 5, 4, 9, 5, 4, 0, 1, 0, 9, 7, 9, 4, 4, 6, 2, 3, 0, 5, 1, 7, 2, 4, 6, 9, 8, 2, 10, 9, 10, 2, 9, 2, 5, 7, 1, 9, 7, 5, 0, 8, 5, 9, 4, 9, 0, 4, 7, 4, 5, 10, 9, 6, 9, 5, 2, 9, 0, 9, 7, 5, 7, 2, 7, 5, 5, 5, 6, 2, 9, 6, 9, 2, 1, 9, 10, 7, 9, 9, 5, 5, 5, 4, 2, 1, 8, 6, 4, 9, 10, 6, 8, 4, 1, 4, 4, 4, 8, 9, 6, 9, 0, 4, 2, 2, 4, 8, 0, 9, 4, 5, 2, 2, 10, 2, 10, 0, 9, 2, 10, 1, 5, 3, 2, 8, 10, 2, 3, 4, 1, 5, 1, 7, 8, 5, 7, 6, 8, 3, 10, 1, 9, 4, 10, 9, 8, 6, 0, 8, 5, 3, 4, 1, 7, 2, 4, 2, 4, 1, 1, 0, 3, 6, 4, 2, 3, 5, 0, 10, 0, 0, 7, 9, 0, 2, 2, 9, 6, 10, 0, 2, 8, 9, 10, 2, 8, 10, 7, 10, 3, 4, 6, 8, 7, 10, 9, 8, 9, 3, 9, 2, 8, 10, 9, 10, 6, 10, 9, 10, 4, 2, 2, 8, 1, 7, 10, 4, 4, 2, 9, 3, 8, 6, 0, 9, 7, 0, 2, 2, 3, 10, 0, 5, 10, 6, 5, 3, 6, 10, 9, 5, 0, 2, 4, 3, 6, 1, 10, 2, 3, 7, 5, 7, 7, 4, 5, 3, 7, 8, 10, 4, 0, 8, 8, 1, 4, 0, 6, 1, 7, 4, 8, 7, 6, 4, 8, 5, 0, 0, 8, 2, 7, 9, 8, 1, 5, 6, 8, 6, 1, 3, 1, 2, 8, 0, 3, 4, 2, 2, 4, 8, 7, 6, 2, 6, 4, 5, 3, 3, 6, 2, 6, 4, 6, 4, 1, 3, 0, 4, 10, 8, 4, 3, 7, 4, 7, 7, 7, 7, 9, 1, 3, 8, 6, 3, 1, 5, 3, 3, 5, 8, 10, 10, 4, 3, 5, 6, 2, 5, 8, 0, 9, 6, 9, 3, 9, 9, 3, 3, 7, 8, 8, 6, 1, 9, 3, 2, 7, 1, 6, 1, 5, 4, 8, 10, 9, 6, 7, 4, 6, 4, 6, 0, 2, 3, 6, 9, 8, 3, 2, 0, 3, 6, 4, 10, 7, 3, 6, 7, 10, 4, 5, 4, 3, 4, 10, 9, 9, 0, 7, 3, 7, 5, 8, 6, 9, 6, 2, 7, 8, 6, 1, 5, 0, 6, 4, 4, 3, 6, 10, 2, 5, 8, 9, 10, 8, 6, 2, 6, 2, 0, 3, 4, 10, 8, 10, 3, 4, 2, 10, 7, 1, 10, 6, 0, 4, 5, 9, 9, 6, 9, 4, 6, 9, 3, 2, 10, 5, 6, 2, 6, 2, 4, 4, 5, 8, 7, 5, 0, 3, 10, 8, 0, 4, 7, 7, 0, 4, 2, 4, 4, 5, 4, 1, 4, 10, 8, 1, 8, 6, 8, 4, 9, 9, 3, 10, 2, 2, 6, 9, 7, 7, 1, 2, 1, 2, 5, 10, 8, 9, 0, 2, 7, 9, 4, 8, 5, 3, 8, 2, 6, 10, 0, 4, 10, 5, 7, 9, 9, 0, 1, 9, 5, 4, 5, 1, 2, 8, 10, 2, 3, 1, 9, 3, 1, 6, 4, 4, 4, 5, 4, 8, 9, 3, 1, 4, 4, 1, 2, 2, 5, 10, 2, 6, 10, 5, 3, 10, 0, 4, 6, 8, 7, 2, 10, 5, 4, 5, 2, 6, 10, 8, 5, 4, 9, 4, 3, 1, 3, 7, 10, 2, 7, 0, 6, 2, 7, 4, 6, 3, 7, 3, 7, 2, 1, 5, 9, 10, 4, 6, 3, 3, 5, 0, 0, 7, 0, 4, 2, 0, 10, 9, 7, 4, 1, 7, 0, 0, 7, 8, 7, 6, 9, 10, 1, 5, 3, 2, 7, 3, 1, 5, 6, 1, 3, 0, 9, 7, 6, 10, 6, 9, 7, 3, 9, 2, 1, 4, 6, 8, 9, 8, 4, 10, 3, 1, 7, 9, 8, 7, 7, 3, 1, 9, 7, 7, 2, 5, 10, 2, 3, 5, 1, 9, 9, 6, 10, 1, 8, 4, 2, 10, 9, 10, 9, 6, 9, 3, 2, 10, 5, 9, 6, 6, 7, 5, 4, 10, 7, 10, 0, 10, 10, 9, 9, 7, 5, 9, 0, 9, 4, 7, 3, 2, 1, 3, 5, 9, 1, 9, 10, 10, 1, 6, 4, 9, 0, 9, 4, 3, 0, 7, 1, 0, 9, 6, 3, 0, 8, 9, 10, 2, 8, 9, 7, 1, 8, 5, 8, 10, 1, 9, 2, 9, 2, 10, 8, 6, 0, 0, 3, 8, 9, 6, 10, 5, 2, 10, 0, 1, 7, 7, 5, 9, 0, 5, 7, 6, 3, 5, 3, 8, 8, 0, 7, 4, 2, 10, 10, 3, 7, 6, 0, 8, 6, 1, 9, 0, 0, 8, 4, 7, 3, 1, 10, 6, 2, 10, 9, 3, 5, 4, 4, 6, 0, 3, 1, 3, 8, 2, 3, 10, 9, 9, 10, 10, 3, 7, 8, 1, 4, 2, 2, 7, 1, 10, 1, 10, 9, 10, 4, 1, 6, 8, 9, 1, 0, 9, 2, 5, 2, 3, 10, 5, 7, 6, 5, 3, 5, 0, 9, 8, 10, 6, 3, 8, 10, 9, 10, 2, 2, 4, 2, 4, 0, 8, 3, 9, 3, 9, 1, 0, 4, 6, 0, 3, 10, 8, 5, 2, 0, 2, 9, 10, 8, 8, 4, 8, 5, 7, 8, 6, 3, 9, 7, 2, 0, 9, 0, 0, 5, 4, 2, 9, 2, 7, 2, 0, 3, 9, 5, 4, 2, 8, 0, 9, 5, 6, 6, 0, 7, 9, 4, 7, 4, 0, 5, 1, 4, 7, 2, 4, 4, 10, 1, 5, 7, 4, 2, 3, 5, 9, 3, 7, 9, 1, 1, 6, 1, 10, 0, 7, 4, 0, 2, 8, 5, 0, 9, 9, 2, 7, 3, 6, 6, 2, 6, 10, 8, 1, 1, 4, 7, 7, 0, 2, 10, 7, 5, 0, 3, 3, 6, 10, 6, 0, 6, 8, 9, 0, 9, 7, 9, 9, 8, 9, 4, 1, 6, 9, 4, 10, 3, 10, 6, 3, 2, 8, 10, 4, 10, 5, 10, 2, 5, 9, 7, 4, 7, 6, 1, 7, 3, 9, 2, 5, 2, 10, 2, 6, 6, 10, 4, 3, 2, 10, 1, 9, 2, 8, 0, 4, 3, 5, 6, 10, 5, 7, 3, 9, 2, 3, 9, 5, 1, 1, 2, 4, 4, 5, 10, 0, 4, 4, 1, 4, 2, 2, 10, 0, 9, 5, 8, 1, 3, 1, 3, 1, 10, 2, 5, 6, 9, 2, 0, 8, 8, 8, 4, 9, 9, 8, 2, 4, 6, 1, 9, 9, 4, 2, 4, 3, 4, 10, 6, 0, 2, 7, 9, 9, 9, 10, 9, 8, 10, 10, 9, 3, 3, 7, 10, 9, 1, 4, 10, 4, 2, 0, 9, 9, 2, 8, 6, 8, 2, 8, 5, 6, 5, 7, 3, 10, 0, 7, 5, 5, 2, 0, 5, 5, 2, 7, 8, 2, 7, 5, 10, 10, 9, 7, 0, 5, 2, 6, 6, 4, 10, 7, 1, 0, 10, 6, 8, 6, 3, 2, 1, 0, 9, 3, 3, 7, 4, 2, 8, 0, 10, 4, 9, 2, 10, 8, 8, 8, 6, 6, 7, 10, 2, 1, 1, 8, 10, 7, 1, 9, 6, 7, 10, 1, 9, 10, 10, 6, 0, 4, 8, 0, 2, 10, 6, 4, 0, 3, 4, 6, 8, 4, 5, 7, 7, 0, 1, 1, 6, 4, 6, 1, 10, 2, 7, 8, 1, 1, 7, 10, 9, 4, 9, 5, 5, 7, 10, 8, 0, 9, 3, 10, 0, 10, 9, 8, 0, 10, 7, 0, 6, 7, 6, 5, 6, 2, 8, 8, 0, 1, 6, 2, 5, 9, 1, 7, 2, 7, 4, 9, 3, 4, 2, 2, 9, 10, 10, 9, 7, 8, 6, 9, 10, 1, 8, 2, 2, 2, 0, 6, 2, 5, 2, 10, 0, 4, 8, 0, 9, 0, 0, 7, 6, 2, 7, 7, 0, 6, 4, 4, 5, 0, 10, 4, 4, 4, 9, 8, 2, 7, 10, 10, 8, 4, 8, 10, 3, 4, 10, 10, 5, 2, 5, 4, 6, 6, 1, 0, 8, 9, 3, 6, 7, 4, 5, 3, 2, 3, 6, 1, 0, 5, 0, 4, 2, 7, 7, 7, 1, 6, 3, 4, 8, 0, 9, 4, 0, 5, 9, 5, 7, 2, 3, 6, 6, 8, 2, 1, 3, 10, 10, 6, 6, 1, 9, 0, 4, 0, 6, 2, 3, 8, 1, 1, 5, 4, 4, 9, 9, 8, 8, 4, 10, 2, 3, 8, 1, 9, 8, 4, 1, 3, 8, 7, 8, 6, 8, 10, 8, 4, 4, 1, 8, 1, 7, 8, 6, 6, 6, 3, 1, 10, 3, 2, 2, 6, 5, 4, 1, 7, 5, 1, 4, 10, 2, 3, 8, 9, 1, 8, 8, 10, 3, 7, 0, 7, 5, 5, 3, 1, 0, 0, 0, 2, 4, 2, 4, 0, 2, 4, 9, 7, 5, 6, 1, 7, 7, 0, 3, 4, 8, 6, 3, 3, 7, 10, 8, 2, 5, 0, 5, 2, 10, 10, 7, 6, 7, 4, 1, 5, 3, 9, 10, 2, 2, 6, 5, 10, 4, 3, 4, 4, 8, 10, 5, 4, 8, 8, 8, 5, 4, 9, 10, 3, 3, 0, 8, 0, 4, 6, 5, 4, 10, 6, 5, 8, 4, 0, 2, 9, 1, 9, 4, 3, 7, 0, 8, 4, 2, 1, 6, 5, 6, 10, 5, 10, 8, 7, 5, 8, 3, 3, 6, 7, 1, 4, 0, 7, 5, 7, 10, 7, 0, 4, 6, 8, 3, 2, 2, 8, 10, 8, 6, 9, 1, 10, 9, 5, 8, 8, 10, 2, 4, 8, 1, 8, 4, 3, 6, 6, 2, 1, 10, 9, 10, 5, 6, 6, 0, 2, 1, 10, 8, 5, 1, 8, 3, 5, 4, 6, 4, 4, 7, 5, 9, 9, 3, 6, 10, 2, 10, 2, 7, 2, 6, 3, 5, 7, 5, 3, 1, 7, 1, 8, 10, 8, 7, 8, 5, 8, 7, 5, 8, 3, 5, 3, 1, 4, 2, 4, 3, 5, 0, 2, 4, 0, 8, 0, 4, 10, 2, 6, 1, 1, 1, 3, 2, 1, 0, 7, 6, 5, 9, 10, 3, 4, 1, 6, 9, 0, 8, 9, 0, 8, 3, 2, 1, 8, 0, 8, 6, 3, 8, 1, 1, 7, 0, 8, 0, 9, 3, 4, 8, 7, 0, 7, 7, 9, 1, 4, 6, 9, 1, 0, 1, 8, 2, 5, 4, 3, 5, 4, 0, 3, 0, 3, 9, 1, 9, 5, 4, 9, 8, 5, 8, 9, 9, 8, 3, 0, 2, 8, 2, 2, 7, 7, 1, 1, 7, 5, 1, 1, 2, 0, 3, 8, 2, 7, 7, 3, 5, 4, 7, 6, 1, 10, 10, 9, 0, 1, 9, 4, 6, 9, 2, 2, 7, 10, 0, 3, 7, 7, 8, 8, 6, 0, 6, 1, 5, 7, 2, 0, 7, 7, 9, 7, 1, 5, 9, 10, 10, 3, 5, 7, 2, 6, 6, 4, 8, 1, 5, 1, 8, 1, 4, 1, 9, 8, 2, 1, 2, 9, 3, 5, 8, 0, 2, 7, 6, 0, 2, 5, 8, 10, 9, 3, 8, 10, 0, 9, 8, 10, 1, 6, 4, 7, 7, 4, 0, 1, 8, 4, 7, 10, 8, 10, 4, 9, 8, 2, 7, 2, 8, 9, 3, 3, 5, 10, 0, 9, 5, 9, 0, 6, 0, 8, 8, 4, 3, 7, 7, 0, 8, 3, 8, 4, 1, 5, 0, 7, 9, 0, 8, 1, 8, 4, 6, 2, 1, 5, 8, 4, 10, 2, 6, 5, 8, 7, 0, 0, 2, 3, 9, 8, 4, 9, 4, 2, 1, 6, 1, 6, 1, 9, 10, 1, 8, 10, 10, 5, 8, 1, 8, 5, 8, 5, 7, 1, 0, 0, 9, 2, 1, 5, 9, 10, 1, 9, 1, 9, 10, 10, 5, 8, 3, 5, 5, 8, 3, 4, 6, 8, 3, 1, 1, 6, 2, 9, 7, 1, 2, 1, 9, 9, 5, 9, 3, 1, 1, 8, 2, 10, 5, 5, 6, 9, 6, 10, 5, 10, 9, 7, 8, 8, 10, 3, 7, 3, 8, 9, 0, 0, 8, 2, 8, 8, 7, 0, 6, 1, 6, 5, 3, 1, 10, 0, 0, 3, 8, 7, 1, 9, 3, 5, 4, 0, 5, 8, 10, 1, 4, 3, 7, 2, 6, 2, 9, 9, 0, 4, 7, 9, 5, 0, 5, 9, 7, 3, 0, 0, 9, 1, 8, 7, 7, 3, 10, 4, 2, 2, 9, 9, 3, 1, 9, 1, 10, 8, 10, 0, 9, 8, 1, 8, 9, 1, 9, 2, 2, 0, 4, 6, 5, 6, 6, 4, 5, 3, 0, 9, 6, 10, 5, 10, 5, 2, 7, 10, 0, 0, 2, 3, 6, 9, 5, 5, 4, 4, 10, 1, 10, 0, 2, 1, 3, 7, 1, 10, 6, 10, 6, 9, 0, 1, 8, 3, 6, 8, 0, 1, 8, 7, 5, 10, 8, 6, 10, 2, 0, 5, 3, 10, 2, 7, 6, 2, 3, 2, 7, 2, 1, 6, 1, 8, 2, 0, 4, 4, 6, 1, 6, 6, 2, 2, 10, 0, 10, 10, 9, 1, 0, 6, 8, 6, 2, 10, 2, 9, 6, 7, 0, 7, 1, 5, 0, 5, 1, 0, 9, 7, 8, 9, 10, 2, 1, 4, 1, 3, 8, 5, 9, 9, 2, 7, 6, 10, 6, 10, 7, 3, 3, 0, 0, 7, 7, 5, 2, 8, 8, 3, 0, 3, 6, 6, 8, 6, 0, 0, 7, 1, 10, 7, 8, 7, 9, 8, 5, 6, 8, 7, 1, 2, 7, 10, 2, 6, 1, 4, 0, 5, 3, 4, 5, 0, 7, 4, 7, 9, 10, 5, 1, 10, 5, 7, 1, 10, 8, 9, 5, 3, 2, 7, 3, 4, 9, 2, 10, 4, 0, 0, 3, 2, 1, 1, 1, 7, 10, 9, 10, 0, 5, 1, 9, 7, 4, 3, 0, 3, 5, 2, 8, 6, 7, 8, 7, 2, 7, 0, 0, 9, 4, 4, 9, 10, 9, 3, 9, 10, 7, 7, 10, 5, 8, 4, 7, 4, 10, 7, 7, 2, 8, 6, 9, 8, 10, 5, 2, 7, 10, 0, 10, 1, 5, 0, 0, 1, 2, 6, 0, 2, 0, 2, 9, 1, 4, 8, 7, 4, 4, 0, 9, 2, 3, 0, 7, 2, 2, 4, 1, 8, 8, 2, 8, 4, 7, 6, 8, 9, 3, 8, 2, 6, 6, 9, 4, 2, 0, 10, 0, 7, 0, 0, 2, 9, 4, 4, 6, 3, 6, 3, 3, 1, 0, 10, 9, 2, 4, 4, 9, 4, 3, 4, 5, 5, 6, 6, 7, 10, 1, 5, 7, 9, 10, 9, 9, 5, 10, 2, 6, 1, 4, 2, 9, 1, 2, 8, 0, 2, 2, 9, 6, 3, 6, 9, 10, 6, 0, 10, 10, 9, 8, 9, 5, 2, 4, 6, 6, 4, 2, 4, 9, 6, 3, 0, 8, 8, 1, 5, 8, 4, 2, 3, 7, 4, 4, 6, 1, 3, 6, 2, 2, 1, 4, 10, 0, 4, 7, 4, 1, 10, 9, 3, 4, 2, 1, 6, 10, 1, 2, 7, 6, 2, 0, 0, 7, 10, 2, 9, 4, 3, 10, 1, 0, 3, 8, 6, 7, 4, 2, 3, 8, 3, 10, 0, 5, 8, 4, 4, 8, 5, 1, 5, 10, 1, 3, 1, 10, 6, 7, 6, 2, 3, 10, 6, 3, 0, 4, 0, 1, 2, 2, 9, 3, 4, 4, 5, 7, 3, 5, 8, 7, 2, 8, 3, 5, 3, 6, 1, 7, 2, 3, 10, 2, 4, 5, 0, 4, 4, 2, 6, 1, 4, 3, 3, 10, 3, 4, 0, 4, 6, 3, 4, 10, 1, 4, 10, 4, 10, 9, 9, 10, 8, 5, 5, 5, 3, 1, 9, 3, 5, 9, 10, 9, 9, 5, 2, 10, 7, 2, 7, 0, 3, 6, 0, 3, 4, 0, 8, 0, 2, 8, 10, 9, 6, 10, 6, 2, 5, 7, 10, 9, 1, 9, 7, 4, 5, 6, 0, 5, 10, 9, 10, 9, 7, 5, 10, 3, 2, 6, 3, 4, 5, 1, 6, 10, 3, 1, 8, 10, 8, 1, 3, 1, 0, 0, 1, 3, 6, 0, 10, 1, 5, 3, 4, 6, 3, 8, 9, 8, 2, 5, 3, 0, 5, 3, 10, 1, 4, 7, 7, 7, 10, 9, 10, 1, 1, 1, 6, 4, 0, 2, 1, 9, 0, 4, 4, 2, 3, 5, 4, 10, 7, 5, 10, 7, 3, 5, 4, 4, 6, 7, 0, 9, 2, 6, 10, 4, 9, 7, 10, 0, 7, 2, 1, 4, 4, 7, 7, 1, 8, 9, 2, 6, 8, 1, 9, 0, 5, 5, 2, 9, 9, 5, 4, 9, 3, 4, 9, 3, 3, 2, 3, 7, 9, 8, 3, 4, 7, 1, 1, 6, 2, 10, 0, 0, 10, 0, 10, 2, 1, 2, 0, 8, 0, 4, 5, 10, 1, 3, 9, 10, 4, 7, 1, 6, 10, 9, 5, 2, 9, 7, 4, 4, 7, 7, 6, 6, 9, 8, 4, 4, 1, 0, 9, 10, 4, 3, 3, 7, 2, 0, 10, 9, 9, 6, 0, 0, 3, 3, 0, 10, 3, 3, 5, 6, 2, 7, 5, 6, 1, 2, 7, 1, 9, 8, 10, 10, 10, 2, 1, 4, 3, 5, 1, 0, 7, 6, 5, 7, 10, 0, 1, 5, 10, 2, 9, 2, 5, 1, 1, 9, 8, 6, 0, 10, 3, 10, 4, 0, 0, 7, 1, 1, 2, 2, 10, 8, 0, 5, 9, 2, 9, 10, 7, 6, 6, 9, 5, 9, 7, 1, 8, 9, 2, 8, 2, 5, 10, 8, 7, 8, 0, 9, 8, 7, 9, 7, 3, 3, 2, 6, 3, 10, 10, 2, 6, 1, 1, 6, 8, 0, 10, 8, 8, 7, 9, 3, 10, 2, 8, 1, 9, 2, 6, 7, 7, 2, 6, 6, 0, 6, 9, 8, 8, 2, 7, 7, 10, 9, 4, 7, 8, 0, 1, 8, 10, 9, 5, 5, 8, 7, 7, 4, 5, 1, 3, 4, 5, 10, 5, 9, 1, 9, 9, 7, 2, 4, 2, 9, 7, 5, 6, 0, 2, 3, 7, 4, 10, 6, 5, 4, 8, 3, 2, 3, 8, 3, 4, 9, 2, 5, 9, 2, 4, 5, 8, 4, 2, 0, 10, 9, 3, 9, 0, 3, 7, 7, 10, 7, 0, 0, 10, 5, 9, 0, 8, 0, 1, 1, 8, 2, 9, 5, 1, 5, 7, 6, 4, 2, 3, 8, 5, 5, 8, 4, 4, 10, 10, 3, 9, 7, 9, 0, 9, 8, 5, 6, 5, 6, 3, 4, 1, 10, 9, 1, 4, 7, 3, 5, 10, 4, 5, 0, 4, 9, 6, 2, 7, 0, 8, 2, 1, 0, 6, 10, 5, 3, 3, 2, 10, 3, 8, 3, 5, 0, 5, 10, 5, 0, 7, 4, 7, 6, 8, 2, 0, 4, 10, 0, 2, 5, 1, 4, 9, 2, 5, 7, 2, 9, 9, 6, 8, 3, 10, 2, 8, 9, 9, 3, 2, 6, 0, 3, 4, 0, 2, 1, 4, 3, 2, 6, 6, 6, 4, 0, 6, 3, 3, 4, 2, 7, 4, 4, 1, 0, 3, 10, 1, 6, 8, 2, 10, 9, 1, 5, 9, 7, 5, 1, 0, 4, 3, 2, 9, 7, 10, 5, 8, 10, 5, 1, 9, 8, 4, 10, 0, 6, 2, 1, 0, 6, 6, 0, 4, 8, 5, 2, 9, 7, 8, 7, 5, 5, 2, 8, 8, 6, 10, 7, 8, 9, 5, 6, 1, 0, 1, 9, 6, 8, 1, 10, 6, 6, 10, 6, 0, 0, 7, 10, 5, 5, 9, 5, 5, 4, 1, 7, 6, 10, 5, 6, 1, 7, 3, 1, 2, 3, 10, 7, 2, 2, 9, 9, 2, 1, 1, 4, 5, 0, 6, 8, 9, 3, 2, 4, 8, 10, 2, 7, 8, 1, 6, 4, 0, 8, 1, 1, 2, 5, 0, 10, 10, 0, 9, 8, 6, 6, 4, 4, 10, 5, 10, 9, 8, 4, 2, 9, 4, 9, 6, 6, 7, 4, 1, 10, 0, 10, 7, 7, 7, 4, 7, 5, 5, 8, 9, 4, 9, 8, 2, 0, 10, 8, 1, 3, 7, 3, 0, 7, 0, 5, 10, 3, 4, 4, 4, 5, 3, 10, 2, 10, 3, 9, 5, 2, 5, 4, 9, 2, 7, 0, 8, 7, 2, 9, 10, 4, 9, 7, 2, 10, 9, 0, 8, 9, 8, 9, 3, 6, 10, 0, 10, 1, 5, 2, 3, 0, 9, 7, 2, 5, 0, 5, 6, 7, 6, 10, 3, 7, 2, 0, 0, 1, 4, 1, 6, 3, 3, 10, 6, 0, 9, 10, 5, 10, 10, 4, 1, 1, 8, 3, 9, 4, 1, 9, 6, 7, 10, 1, 6, 10, 0, 9, 1, 2, 1, 8, 8, 7, 6, 9, 10, 10, 6, 8, 7, 3, 7, 3, 5, 3, 1, 4, 6, 7, 9, 6, 1, 1, 10, 8, 2, 9, 7, 6, 2, 6, 9, 3, 1, 8, 5, 7, 4, 9, 0, 3, 7, 10, 6, 1, 4, 6, 0, 0, 9, 9, 5, 7, 5, 4, 6, 0, 0, 9, 0, 6, 2, 10, 4, 1, 2, 4, 4, 1, 2, 9, 2, 6, 8, 9, 5, 3, 5, 5, 7, 5, 5, 3, 2, 2, 0, 5, 0, 4, 4, 9, 10, 6, 2, 0, 1, 10, 5, 3, 4, 9, 0, 5, 2, 7, 2, 4, 0, 8, 9, 2, 2, 0, 10, 5, 3, 4, 2, 5, 9, 2, 6, 1, 7, 6, 10, 5, 7, 7, 2, 10, 10, 2, 9, 10, 7, 8, 0, 7, 2, 10, 9, 0, 6, 8, 0, 2, 7, 8, 3, 0, 5, 9, 9, 2, 1, 0, 1, 9, 4, 5, 3, 9, 4, 6, 4, 5, 0, 1, 7, 7, 3, 1, 7, 7, 2, 10, 9, 1, 5, 8, 1, 4, 3, 2, 5, 8, 9, 6, 2, 8, 1, 9, 8, 2, 8, 6, 8, 7, 7, 4, 1, 3, 7, 4, 4, 2, 1, 10, 4, 8, 4, 0, 9, 7, 1, 10, 9, 2, 10, 3, 5, 7, 0, 5, 9, 8, 9, 6, 4, 3, 4, 6, 5, 5, 2, 0, 7, 7, 6, 1, 5, 0, 6, 2, 5, 1, 0, 10, 3, 3, 6, 6, 8, 0, 1, 7, 6, 8, 10, 8, 0, 7, 6, 4, 6, 3, 9, 5, 1, 1, 9, 10, 1, 10, 7, 3, 9, 0, 6, 2, 8, 10, 2, 2, 0, 5, 6, 1, 1, 2, 9, 2, 6, 6, 8, 7, 3, 3, 6, 0, 7, 2, 2, 9, 8, 8, 5, 2, 9, 5, 1, 5, 8, 2, 2, 9, 4, 9, 3, 0, 0, 1, 3, 5, 10, 0, 2, 6, 4, 4, 1, 0, 6, 1, 9, 8, 4, 2, 6, 8, 4, 4, 4, 3, 3, 6, 7, 3, 4, 7, 3, 7, 1, 8, 7, 5, 10, 0, 10, 8, 6, 10, 10, 8, 4, 10, 8, 8, 4, 10, 8, 10, 4, 7, 9, 0, 4, 8, 6, 9, 0, 3, 4, 4, 5, 3, 4, 6, 2, 9, 5, 2, 2, 6, 1, 2, 7, 7, 5, 7, 4, 2, 8, 6, 4, 5, 5, 5, 3, 5, 3, 2, 10, 9, 2, 6, 1, 6, 1, 6, 6, 6, 5, 4, 1, 8, 8, 5, 8, 0, 5, 10, 5, 2, 9, 8, 7, 5, 0, 6, 8, 3}
Returns: {890, 477, 741, 509, 215, 639, 235, 64, 599, 65, 677, 224, 575, 203, 345, 638, 405, 400, 727, 922, 198, 508, 733, 544, 299, 422, 534, 959, 150, 694, 321, 60, 607, 417, 163, 899, 839, 187, 209, 979, 561, 887, 693, 651, 803, 883, 774, 726, 185, 660, 806, 273, 980, 828, 981, 375, 312, 707, 554, 675, 541, 760, 673, 231, 133, 821, 432, 867, 596, 318, 872, 159, 921, 904, 681, 568, 957, 837, 126, 330, 858, 219, 661, 290, 425, 612, 317, 748, 55, 852, 737, 313, 310, 569, 690, 189, 680, 685, 771, 769, 687, 332, 855, 49, 20, 220, 992, 421, 735, 628, 194, 633, 298, 461, 293, 374, 102, 845, 901, 907, 229, 755, 873, 3, 56, 128, 38, 610, 291, 19, 754, 577, 445, 513, 167, 24, 968, 898, 35, 718, 605, 629, 911, 642, 392, 7, 785, 606, 179, 929, 505, 895, 986, 536, 27, 717, 856, 635, 542, 343, 57, 906, 615, 241, 323, 546, 775, 459, 22, 217, 104, 600, 481, 543, 151, 520, 705, 747, 928, 836, 288, 268, 349, 40, 710, 69, 260, 233, 617, 177, 574, 315, 903, 512, 355, 379, 396, 124, 137, 93, 207, 751, 62, 269, 699, 945, 460, 853, 487, 965, 404, 387, 496, 292, 585, 525, 757, 378, 243, 225, 103, 138, 621, 953, 583, 327, 61, 847, 570, 205, 483, 98, 121, 935, 485, 644, 502, 941, 479, 659, 365, 88, 983, 486, 498, 450, 145, 386, 792, 657, 96, 620, 528, 936, 833, 602, 13, 44, 66, 540, 510, 977, 480, 995, 380, 897, 558, 5, 500, 447, 411, 50, 23, 441, 643, 406, 725, 359, 398, 32, 579, 834, 708, 844, 344, 171, 8, 204, 244, 0, 519, 184, 942, 436, 758, 763, 889, 832, 603, 173, 938, 437, 772, 132, 667, 81, 616, 870, 609, 859, 183, 95, 702, 328, 497, 786, 988, 932, 931, 948, 886, 656, 631, 878, 893, 360, 147, 367, 511, 76, 744, 666, 944, 811, 632, 212, 982, 608, 490, 275, 591, 430, 976, 537, 134, 526, 879, 166, 535, 734, 645, 720, 472, 849, 492, 309, 551, 175, 564, 471, 463, 669, 46, 18, 841, 182, 464, 954, 214, 923, 864, 618, 475, 584, 653, 557, 178, 838, 779, 107, 26, 812, 117, 191, 637, 322, 101, 122, 420, 319, 473, 118, 381, 85, 753, 47, 791, 563, 578, 652, 484, 350, 370, 857, 731, 994, 250, 548, 641, 368, 278, 962, 426, 842, 130, 835, 796, 739, 338, 523, 738, 176, 470, 501, 165, 358, 626, 517, 698, 6, 294, 900, 180, 158, 418, 874, 424, 120, 415, 975, 266, 111, 634, 503, 715, 433, 896, 89, 262, 817, 140, 987, 728, 567, 993, 270, 412, 722, 329, 337, 529, 164, 267, 767, 119, 515, 357, 403, 826, 550, 524, 920, 413, 282, 917, 73, 594, 640, 553, 840, 14, 248, 790, 966, 161, 240, 586, 82, 265, 777, 28, 414, 998, 560, 211, 434, 860, 116, 29, 408, 232, 305, 407, 401, 33, 333, 947, 678, 516, 908, 990, 930, 149, 352, 866, 590, 630, 783, 127, 438, 668, 467, 799, 991, 457, 197, 274, 782, 756, 877, 100, 340, 918, 142, 823, 474, 97, 373, 745, 658, 71, 914, 689, 538, 397, 252, 960, 910, 228, 871, 491, 78, 113, 67, 711, 676, 295, 861, 16, 144, 251, 623, 506, 885, 654, 410, 200, 181, 242, 36, 793, 218, 688, 25, 94, 316, 807, 2, 108, 91, 488, 199, 850, 152, 704, 192, 902, 153, 136, 533, 429, 106, 353, 11, 732, 974, 730, 820, 854, 971, 709, 221, 37, 285, 650, 721, 797, 692, 402, 114, 296, 819, 45, 87, 776, 915, 131, 391, 848, 905, 934, 12, 385, 810, 742, 713, 846, 286, 371, 671, 674, 566, 547, 794, 356, 691, 865, 271, 814, 431, 139, 493, 129, 521, 256, 342, 719, 68, 665, 679, 452, 110, 999, 780, 805, 781, 448, 237, 112, 891, 196, 261, 595, 276, 234, 663, 202, 314, 395, 168, 955, 881, 157, 913, 72, 530, 909, 389, 77, 985, 892, 213, 562, 99, 162, 946, 4, 74, 281, 951, 300, 759, 963, 627, 90, 223, 17, 372, 778, 109, 863, 289, 939, 92, 369, 9, 696, 984, 394, 683, 815, 208, 597, 59, 320, 588, 156, 442, 764, 813, 670, 571, 75, 724, 943, 927, 303, 916, 31, 752, 869, 63, 283, 746, 21, 280, 206, 765, 230, 354, 937, 768, 304, 808, 822, 967, 622, 466, 522, 456, 802, 83, 766, 478, 253, 247, 341, 964, 686, 801, 662, 30, 347, 611, 997, 729, 868, 831, 581, 307, 308, 160, 277, 311, 302, 973, 188, 989, 255, 54, 246, 940, 706, 125, 52, 236, 287, 439, 170, 135, 363, 190, 272, 361, 279, 825, 804, 346, 647, 41, 226, 39, 383, 419, 70, 888, 155, 86, 482, 961, 465, 58, 555, 925, 325, 297, 409, 259, 462, 552, 625, 703, 174, 254, 48, 701, 43, 227, 875, 697, 301, 933, 798, 454, 455, 238, 514, 84, 545, 79, 331, 423, 376, 476, 587, 532, 141, 364, 714, 593, 556, 105, 10, 740, 435, 201, 468, 393, 646, 761, 919, 672, 565, 507, 80, 972, 592, 827, 284, 428, 824, 773, 186, 950, 377, 399, 649, 384, 446, 51, 619, 576, 1, 154, 843, 382, 695, 222, 829, 34, 427, 816, 257, 263, 851, 750, 894, 956, 884, 518, 443, 598, 789, 148, 664, 969, 880, 193, 712, 146, 978, 970, 494, 648, 809, 335, 306, 42, 348, 210, 258, 624, 469, 924, 115, 143, 527, 795, 788, 495, 195, 958, 716, 245, 334, 336, 339, 770, 952, 559, 762, 996, 249, 636, 449, 684, 504, 453, 264, 351, 572, 388, 682, 172, 451, 324, 882, 216, 830, 239, 614, 800, 440, 573, 949, 499, 749, 366, 489, 326, 818, 416, 589, 582, 926, 539, 549, 700, 601, 876, 458, 862, 912, 123, 784, 655, 362, 743, 444, 53, 15, 723, 531, 787, 604, 736, 169, 613, 580, 390 }
Submissions are judged against all 128 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Language: C++17 · define a public class MaximumPenalty with a public method vector<int> schedule(vector<int> L, vector<int> P) · 128 test cases · 2 s / 256 MB per case