This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class ho_t1 {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(System.out);
StringTokenizer st = new StringTokenizer(in.readLine());
int N = Integer.parseInt(st.nextToken());
int[] A = new int[N+1];
int[] B = new int[N];
st = new StringTokenizer(in.readLine());
for (int i = 0; i <= N; i++) {
A[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(in.readLine());
for (int i = 0; i < N; i++) {
B[i] = Integer.parseInt(st.nextToken());
}
int[] sortB = radixSort(B.clone());
int[] sortA = radixSort(A.clone());
int[] prefMax = new int[N];
prefMax[0] = A[sortA[0]] - B[sortB[0]];
for (int i = 1; i < N; i++) {
prefMax[i] = Math.max(prefMax[i-1], A[sortA[i]] - B[sortB[i]]);
}
int suffixMax = 0;
int[] ans = new int[N+1];
for (int i = N; i >= 1; i--) {
ans[sortA[i]] = Math.max(0, Math.max(suffixMax, prefMax[i-1]));
suffixMax = Math.max(A[sortA[i]] - B[sortB[i-1]], suffixMax);
}
ans[sortA[0]] = Math.max(0, suffixMax);
for (int i : ans) {
out.print(i + " ");
}
out.close();
}
static int[] radixSort(int[] key) {
int[] sort = new int[key.length];
for (int i = 0; i < key.length; i++) {
sort[i] = i;
}
int max = 1;
while (max > 0) {
int[] next = new int[sort.length];
int[] bucket = new int[10];
max = 0;
for (int i = 0; i < key.length; i++) {
bucket[key[i]%10]++;
}
for (int i = 1; i < 10; i++) {
bucket[i] += bucket[i-1];
}
for (int i = sort.length-1; i >= 0; i--) {
next[--bucket[key[sort[i]]%10]] = sort[i];
key[sort[i]]/=10;
max = Math.max(key[sort[i]], max);
}
sort = next.clone();
}
return sort;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |