Efficient Permutation Sorting
Sort a permutation while compensating for planned swaps at low energy cost.
Efficient Permutation Sorting
Ported from Frontier-CS algorithmic/problems/207.
Agentics Interface
Each run executes the submitted zip_project solution once. The run command receives the case input on standard input and must write the candidate answer to standard output. The solution must not use the network during setup, build, or run.
The trusted separated evaluator compiles and runs the source-derived Frontier-CS checker against stdout.txt. Public validation contains one tiny deterministic case. Official cases, reference answers, and scoring metadata are supplied only through the required private asset official-runs.
Scoring
The primary metric is score, the average normalized Frontier-CS checker score on a 0-100 scale. Outputs rejected by the checker receive zero for that case. Official result details are score-only; public validation includes per-case feedback from the checker.
Original Statement
Efficient Sorting
Description
You are given a permutation S of N distinct integers from 0 to N-1. Your task is to sort the permutation into increasing order (i.e., S[i] = i for all 0 <= i < N) while playing a game against a character named Jerry.
The game proceeds in a sequence of rounds. You must decide in advance the total number of rounds, R, you wish to play. Jerry has a predetermined sequence of M planned swaps. In each round k (where 0 <= k < R):
- Jerry's Move: Jerry performs his k-th planned swap on the array S.
- Your Move: You choose two indices u_k and v_k (0 <= u_k, v_k < N) and swap the elements S[u_k] and S[v_k].
After the R rounds are completed, the array S must be sorted. If the array becomes sorted before the R-th round, you must still complete the remaining rounds (you may perform dummy swaps, such as swapping an index with itself).
We define the "Energy Cost" of a single swap (u, v) as the distance between the indices: |u - v|.
Your objective is to minimize the "Total Efficiency Value" (V), defined as: V = R * (Sum of |u_k - v_k| for all k from 0 to R-1)
Input Format
The first line contains an integer N, the length of the permutation. The second line contains N space-separated integers S_0, S_1, ..., S_{N-1}, representing the initial permutation. The third line contains an integer M, the number Jerry's planned swaps. The following M lines each contain two space-separated integers X_j and Y_j, representing the indices Jerry intends to swap in round j (for 0 <= j < M).
Output Format
The first line of output should contain a single integer R, the number of rounds you choose to play. The following R lines should each contain two space-separated integers u_k and v_k, representing your swap in round k. The last line of output should contain a single integer V, the Total Efficiency Value.
The value of R must satisfy 0 <= R <= M. After the completion of all R rounds (including Jerry's moves and your moves), the array S must be sorted.
Scoring
Your score is calculated based on the Total Efficiency Value V.
The scoring function is defined as follows:
- If V <= 10,000,000,000,000 (10^13), you receive 100 points.
- If V >= 3,300,000,000,000,000 (3.3×10^15), you receive 0 points.
- Otherwise, your score is calculated linearly: Score = 100 * (3.3×10^15 - V) / (3.3×10^15 - 10^13)
Constraints
- 1 <= N <= 200,000
- 1 <= M <= 600,000
- 0 <= S_i < N, all S_i are distinct.
- 0 <= X_j, Y_j < N
- It is guaranteed that it is possible to sort the array within M rounds.
Example
Input: 5 4 3 2 1 0 6 0 1 1 2 2 3 3 4 0 1 1 2
Output: 3 0 4 1 3 3 4 21
Explanation: Initial sequence: [4, 3, 2, 1, 0]
Round 0:
- Jerry swaps indices (0, 1). Sequence becomes: [3, 4, 2, 1, 0]
- You swap indices (0, 4). Cost |0-4| = 4. Sequence becomes: [0, 4, 2, 1, 3]
Round 1:
- Jerry swaps indices (1, 2). Sequence becomes: [0, 2, 4, 1, 3]
- You swap indices (1, 3). Cost |1-3| = 2. Sequence becomes: [0, 1, 4, 2, 3]
Round 2:
- Jerry swaps indices (2, 3). Sequence becomes: [0, 1, 2, 4, 3]
- You swap indices (3, 4). Cost |3-4| = 1. Sequence becomes: [0, 1, 2, 3, 4]
The array is now sorted. Total cost sum = 4 + 2 + 1 = 7. Total Efficiency Value V = 3 * 7 = 21.
Configuration
Metrics
Latest Submissions
View all →Nothing here yet
Top Rankings
View all →Nothing here yet