import java.util.*;
class jobschedule {
public static Pair [] arr;
public static int m;
public static int d;
public static int n;
public static int [] times;
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
n = s.nextInt();
d = s.nextInt();
m = s.nextInt();
arr = new Pair [m];
for (int i = 0; i < m; i++) {
arr[i] = new Pair (s.nextInt(), i + 1);
}
Arrays.sort(arr);
int a = 1, b = m;
int mid = 1;
while (a != b) {
mid = (a + b) / 2;
if (simulate(mid)) {
b = mid;
}
else {
a = mid + 1;
}
}
if (!simulate(mid)) {
simulate(mid + 1);
mid++;
System.out.println(mid);
}
else {
simulate(mid);
System.out.println(mid);
}
int pos = 0;
int dayf = 1;
boolean done = false;
for (int i = 0; i < n; i++) {
//System.out.println(pos + mid + "h" + done);
if (done) {
System.out.println(0);
continue;
}
if ((pos + mid) >= m) {
done = true;
}
for (int j = pos; j < m; j++) {
//System.out.println(j + " " + dayf + " " + times[j]);
if (!(dayf == times[j])) {
dayf++;
pos = j;
break;
}
System.out.print(arr[j].index + " ");
}
System.out.print(0);
System.out.println();
}
System.exit(0);
}
public static boolean simulate (int x) {
int counter = 1;
int day = 1;
times = new int [m];
for (int i = 0; i < m; i++) {
times[i] = day;
counter++;
if (counter > x) {
counter = 1;
day++;
}
}
//System.out.println(Arrays.toString(times) + " " + x);
for (int i = 0; i < m; i++) {
if (times[i] - arr[i].sorter > d) {
return false;
}
}
return true;
}
private static class Pair implements Comparable<Pair> {
int sorter;
int index;
public Pair(int location, int index) {
this.sorter = location;
this.index = index;
}
@Override
public int compareTo(Pair o) {
return sorter - o.sorter;
}
@Override
public boolean equals (Object other) {
Pair nother = (Pair) other;
return nother.sorter == sorter;
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
184 ms |
12380 KB |
Execution failed because the return code was nonzero |
2 |
Runtime error |
170 ms |
12116 KB |
Execution failed because the return code was nonzero |
3 |
Runtime error |
192 ms |
11900 KB |
Execution failed because the return code was nonzero |
4 |
Runtime error |
170 ms |
11956 KB |
Execution failed because the return code was nonzero |
5 |
Runtime error |
167 ms |
12004 KB |
Execution failed because the return code was nonzero |
6 |
Runtime error |
174 ms |
12128 KB |
Execution failed because the return code was nonzero |
7 |
Runtime error |
177 ms |
12004 KB |
Execution failed because the return code was nonzero |
8 |
Runtime error |
168 ms |
12132 KB |
Execution failed because the return code was nonzero |
9 |
Runtime error |
168 ms |
11944 KB |
Execution failed because the return code was nonzero |
10 |
Runtime error |
184 ms |
12084 KB |
Execution failed because the return code was nonzero |
11 |
Runtime error |
177 ms |
12056 KB |
Execution failed because the return code was nonzero |
12 |
Runtime error |
174 ms |
12160 KB |
Execution failed because the return code was nonzero |
13 |
Runtime error |
168 ms |
11964 KB |
Execution failed because the return code was nonzero |
14 |
Runtime error |
177 ms |
11948 KB |
Execution failed because the return code was nonzero |
15 |
Runtime error |
170 ms |
11948 KB |
Execution failed because the return code was nonzero |
16 |
Runtime error |
181 ms |
11984 KB |
Execution failed because the return code was nonzero |
17 |
Runtime error |
171 ms |
11936 KB |
Execution failed because the return code was nonzero |
18 |
Runtime error |
168 ms |
11940 KB |
Execution failed because the return code was nonzero |
19 |
Runtime error |
169 ms |
12124 KB |
Execution failed because the return code was nonzero |
20 |
Runtime error |
183 ms |
12160 KB |
Execution failed because the return code was nonzero |