Submission #1148141

#TimeUsernameProblemLanguageResultExecution timeMemory
1148141ruben_ipenzaCoin Collecting (JOI19_ho_t4)Java
0 / 100
77 ms12868 KiB
import java.util.*;

public class joi2019_ho_t4 {
    public static long minOperations(int N, int[][] coins) {
        List<int[]> targetPositions = new ArrayList<>();

        for (int x = 1; x <= N; x++) {
            targetPositions.add(new int[]{x, 1});
            targetPositions.add(new int[]{x, 2});
        }

        Arrays.sort(coins, (a, b) -> a[0] == b[0] ? a[1] - b[1] : a[0] - b[0]);
        targetPositions.sort((a, b) -> a[0] == b[0] ? a[1] - b[1] : a[0] - b[0]);

        long totalOperations = 0;

        for (int i = 0; i < 2 * N; i++) {
            int[] coin = coins[i];
            int[] target = targetPositions.get(i);
            totalOperations += Math.abs(coin[0] - target[0]) + Math.abs(coin[1] - target[1]);
        }

        return totalOperations;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[][] coins = new int[2 * N][2];

        for (int i = 0; i < 2 * N; i++) {
            coins[i][0] = sc.nextInt();
            coins[i][1] = sc.nextInt();
        }

        long result = minOperations(N, coins);

        System.out.println(result);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...