제출 #1160664

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

public class CP {
    public static class Request {
        public int requestNumber;
        public int recievedDay;
        public int processedDay;

        public Request(int requestNumber, int recievedDay) {
            this.requestNumber = requestNumber;
            this.recievedDay = recievedDay;
        }
    }

    public static class daySchedule {
        public int dayNumber;
        public int requestCount;

        public daySchedule(int dayNumber, int requestCount) {
            this.dayNumber = dayNumber;
            this.requestCount = requestCount;
        }
    }

    public static void main(String[] args) {
        Kattio io = new Kattio();

        int n, d, m;

        n = io.nextInt();
        d = io.nextInt();
        m = io.nextInt();

        Request[] requests = new Request[m];

        for (int x, i = 0; i < m; i++) {
            x = io.nextInt();
            requests[i] = new Request(i + 1, x);
        }

        Arrays.sort(requests, (r, l) -> r.recievedDay - l.recievedDay);

        PriorityQueue<daySchedule> pq = new PriorityQueue<>((r, l) -> {
            if (r.requestCount != l.requestCount)
                return r.requestCount - l.requestCount;
            return r.dayNumber - l.dayNumber;
        });

        for(int i = 0; i < m; i++) {
            io.println("requestNumber: " + requests[i].requestNumber + ", receivedDay: " + requests[i].recievedDay + ", processedDay: " + requests[i].processedDay);
        }

        for (int i = 1; i <= d; i++)
            pq.add(new daySchedule(i, 0));

        int pos = 0;
        for(int day = 1; day <= n && pos < m; day++) {
            pq.add(new daySchedule(day + d, 0));

            if (day < requests[pos].recievedDay)
                continue;

            while(pos < m && requests[pos].recievedDay == day) {
                while (pq.peek().dayNumber < day) {
                    pq.poll();
                }

                daySchedule schedule = pq.poll();
                schedule.requestCount++;
                requests[pos++].processedDay = schedule.dayNumber;
                pq.add(schedule);
            }
        }

        Arrays.sort(requests, (r, l) -> r.processedDay - l.processedDay);

        int minimumMachines = Integer.MIN_VALUE;
        for(int ipos, i = 0; i < m; ) {
            ipos = i;
            while(i < m && requests[i].processedDay == requests[ipos].processedDay)
                i++;

            if (i - ipos > minimumMachines)
                minimumMachines = i - ipos;
        }

        io.println(minimumMachines);

        pos = 0;
        for(int day = 1; day <= n; day++) {
            while(pos < m && requests[pos].processedDay == day) {
                io.print(requests[pos++].requestNumber + " ");
            }

            io.println(0);
        }

        io.close();
    }

    static class Kattio extends PrintWriter {
        private BufferedReader r;
        private StringTokenizer st;
        // standard input
        public Kattio() { this(System.in, System.out); }
        public Kattio(InputStream i, OutputStream o) {
            super(o);
            r = new BufferedReader(new InputStreamReader(i));
        }
        // USACO-style file input
        public Kattio(String problemName) throws IOException {
            super(problemName + ".out");
            r = new BufferedReader(new FileReader(problemName + ".in"));
        }
        // returns null if no more input
        public String next() {
            try {
                while (st == null || !st.hasMoreTokens())
                    st = new StringTokenizer(r.readLine());
                return st.nextToken();
            } catch (Exception e) { }
            return null;
        }
        public int nextInt() { return Integer.parseInt(next()); }
        public double nextDouble() { return Double.parseDouble(next()); }
        public long nextLong() { return Long.parseLong(next()); }
    }
}

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

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

=======