제출 #1146911

#제출 시각아이디문제언어결과실행 시간메모리
1146911daniel_lopezCoin Collecting (JOI19_ho_t4)Java
0 / 100
78 ms12612 KiB
import java.util.*; public class joi2019_ho_t4 { static class Pair { int x, y; Pair(int x, int y) { this.x = x; this.y = y; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Pair)) return false; Pair pair = (Pair) o; return x == pair.x && y == pair.y; } @Override public int hashCode() { return Objects.hash(x, y); } } static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, 1, 0, -1}; static Map<String, Integer> memo; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); List<Pair> initialCoins = new ArrayList<>(); for (int i = 0; i < 2 * N; i++) { int x = sc.nextInt(); int y = sc.nextInt(); initialCoins.add(new Pair(x, y)); } List<Pair> targetPositions = new ArrayList<>(); for (int i = 1; i <= N; i++) { targetPositions.add(new Pair(i, 1)); targetPositions.add(new Pair(i, 2)); } initialCoins.sort((a, b) -> a.x == b.x ? a.y - b.y : a.x - b.x); targetPositions.sort((a, b) -> a.x == b.x ? a.y - b.y : a.x - b.x); int result = calculateMinMoves(initialCoins, targetPositions); System.out.println(result); sc.close(); } static int calculateMinMoves(List<Pair> coins, List<Pair> targets) { int totalMoves = 0; for (int i = 0; i < coins.size(); i++) { totalMoves += Math.abs(coins.get(i).x - targets.get(i).x) + Math.abs(coins.get(i).y - targets.get(i).y); } return totalMoves; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...