居然一个排序就搞定了?
按照三个阶段总用时排序,递增,自己算算总结规律。
然后遍历数组就完了。
code
import java.io.IOException;
import java.io.StreamTokenizer;
import java.util.Arrays;
public class 答疑 {
public static void main(String[] args) throws IOException {
StreamTokenizer in=new StreamTokenizer(System.in);
in.nextToken();
int n=(int) in.nval;
user[] u=new user[n];
for (int i = 0; i < n; i++) {
in.nextToken();
int a=(int) in.nval;
in.nextToken();
a+=(int) in.nval;
in.nextToken();
int c=(int) in.nval;
u[i]=new user(a,c,a+c);
}
Arrays.sort(u);
//System.out.println(Arrays.toString(u));
long ans=0,m=0;
for (int i = 0; i < n; i++) {
ans+=m+=u[i].ab;
m+=u[i].c;
}
System.out.println(ans);
}
static class user implements Comparable<user> {
int ab;
int c;
int sum;
public user(int ab, int c, int sum) {
this.ab = ab;
this.c = c;
this.sum = sum;
}
public user() {
}
@Override
public int compareTo(user o) {
return this.sum-o.sum;
}
@Override
public String toString() {
return "user [ab=" + ab + ", c=" + c + ", sum=" + sum + "]";
}
}
}