CAR - Lập lịch sửa chữa ô tô

Tác giả: khuc_tuan

Ngôn ngữ: Java

import java.io.*;
import java.util.*;
import static java.lang.Integer.parseInt;
public class Main{
	static class Element implements Comparable<Element>{
		public int a,b,i;
		public int compareTo(Element x) {
			return -a*x.b+b*x.a;
		}
	}
	public static void main(String[]Args) throws Exception {
		BufferedReader kb=new BufferedReader(new InputStreamReader(System.in));
		int n=parseInt(kb.readLine());
		Element[] a=new Element[n];
		for(int i=0;i<n;++i) a[i]=new Element();
		StringTokenizer st=new StringTokenizer(kb.readLine());
		for(int i=0;i<n;++i) {
			a[i].a = parseInt(st.nextToken());
			a[i].i = i+1;
		}
		st=new StringTokenizer(kb.readLine());
		for(int i=0;i<n;++i) a[i].b=parseInt(st.nextToken());
		Arrays.sort(a);
		long s=0,r=0;
		for(Element x:a) {
			s+=x.b;
			r+=s*x.a;
		}
		System.out.println(r);
		for(Element x:a) System.out.print(x.i+" ");
	}
}

Download