제출 #1147947

#제출 시각아이디문제언어결과실행 시간메모리
1147947sossa_abelCoin Collecting (JOI19_ho_t4)Java
컴파일 에러
0 ms0 KiB
import java.io.*;
import java.util.*;

public class CoinCollecting {
    static class State {
        int x, y;
        
        State(int x, int y) {
            this.x = x;
            this.y = y;
        }
        
        @Override
        public int hashCode() {
            return Objects.hash(x, y);
        }
        
        @Override
        public boolean equals(Object obj) {
            if (!(obj instanceof State)) return false;
            State other = (State) obj;
            return x == other.x && y == other.y;
        }
    }
    
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        
        Map<State, Integer> coinCount = new HashMap<>();
        for (int i = 0; i < 2 * n; i++) {
            String[] parts = br.readLine().split(" ");
            int x = Integer.parseInt(parts[0]);
            int y = Integer.parseInt(parts[1]);
            State pos = new State(x, y);
            coinCount.merge(pos, 1, Integer::sum);
        }
        
        long totalMoves = 0;
        for (int x = 1; x <= n; x++) {
            for (int y = 1; y <= 2; y++) {
                State target = new State(x, y);
                
                int minDist = Integer.MAX_VALUE;
                State closest = null;
                
                for (Map.Entry<State, Integer> entry : coinCount.entrySet()) {
                    if (entry.getValue() > 0) {
                        State pos = entry.getKey();
                        int dist = Math.abs(pos.x - x) + Math.abs(pos.y - y);
                        if (dist < minDist) {
                            minDist = dist;
                            closest = pos;
                        }
                    }
                }
                
                if (closest != null) {
                    totalMoves += minDist;
                    coinCount.merge(closest, -1, Integer::sum);
                }
            }
        }
        
        System.out.println(totalMoves);
    }
}

컴파일 시 표준 에러 (stderr) 메시지

joi2019_ho_t4.java:4: error: class CoinCollecting is public, should be declared in a file named CoinCollecting.java
public class CoinCollecting {
       ^
1 error

=======