CAR - Lập lịch sửa chữa ô tô
Tác giả: RR
Ngôn ngữ: Java
import java.io.*;
import java.util.*;
class Car {
int a, b, index;
double c;
Car() {
}
}
class CarComparator implements Comparator<Car> {
public static final double EPS = 1e-9;
public int compare(Car X, Car Y) {
if (Math.abs(X.c - Y.c) < EPS) return 0;
else if (X.c < Y.c) return -1;
else return 1;
}
}
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner( System.in );
PrintWriter pw = new PrintWriter( System.out );
int n = sc.nextInt();
Car[] a = new Car[n];
for(int i = 0; i < n; i++)
a[i] = new Car();
for(int i = 0; i < n; i++) a[i].a = sc.nextInt();
for(int i = 0; i < n; i++) a[i].b = sc.nextInt();
for(int i = 0; i < n; i++) a[i].index = i+1;
for(int i = 0; i < n; i++) a[i].c = (double)a[i].b / a[i].a;
Comparator<Car> cc = new CarComparator();
Arrays.sort(a, cc);
long res = 0, time = 0;
for(int i = 0; i < n; i++) {
time += a[i].b;
res += time * a[i].a;
}
pw.println(res);
for(int i = 0; i < n; i++)
pw.print( a[i].index + " ");
pw.close();
}
}