Submission #1106456

#TimeUsernameProblemLanguageResultExecution timeMemory
1106456tungdao17Job Scheduling (CEOI12_jobs)Java
Compilation error
0 ms0 KiB
import java.io.*; import java.util.*; import java.util.function.Predicate; // https://oj.uz/problem/view/CEOI12_jobs public class Main { static List<List<Job>> result; public static void main(String[] args) throws IOException { Kattio io = new Kattio(); // Kattio io = new Kattio("test"); int N = io.nextInt(), D = io.nextInt(), M = io.nextInt(); Job[] jobs = new Job[M]; for (int i = 0; i < M; ++i) jobs[i] = new Job(i + 1, io.nextInt()); Arrays.sort(jobs, Comparator.comparingInt(j -> j.requestDay)); io.println(firstTrue(1, M, x -> can(x, N, D, jobs))); for (int i = 0; i < N; ++i) { if (i < result.size()) { StringBuilder s = new StringBuilder(); for (Job job : result.get(i)) s.append(job.id + " "); s.append("0"); io.println(s.toString()); } else io.println("0"); } io.close(); } static boolean can(int maxMachine, int nDay, int nRunningDay, Job[] jobs) { List<List<Job>> jobSchedule = new ArrayList<>(); List<Job> processingJobs = new LinkedList<>(); int today = 1, i = 0; while (today < nDay && i < jobs.length) { if (processingJobs.size() > maxMachine) return false; else { // remove finished jobs while (processingJobs.size() > 0 && today - processingJobs.get(0).requestDay >= nRunningDay) processingJobs.remove(0); // add new jobs while (processingJobs.size() < maxMachine && i < jobs.length && jobs[i].requestDay <= today) processingJobs.add(jobs[i++]); } today++; jobSchedule.add(new ArrayList<>(processingJobs)); } boolean isValid = today <= nDay && i == jobs.length; if (isValid) result = jobSchedule; return isValid; } static int firstTrue(int l, int r, Predicate<Integer> f) { r++; while (l < r) { int m = l + (r - l) / 2; if (f.test(m)) r = m; else l = m + 1; } return l; } static class Job { int id, requestDay; Job(int id, int day) { this.id = id; this.requestDay = day; } } } // 8 2 12 // 1 2 4 2 1 3 5 6 2 3 6 4 class Kattio extends PrintWriter { BufferedReader r; StringTokenizer st; public Kattio() { super(System.out); r = new BufferedReader(new InputStreamReader(System.in)); } public Kattio(String problemName) throws IOException { super(problemName + ".out"); r = new BufferedReader(new FileReader(problemName + ".in")); } 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()); } }

Compilation message (stderr)

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