In the problem B the solution is very short and probably every body make a n*log(n) solution by sorting the array and then pass over the array in O(n) to get the solution. There should'nt happen things like this: This is my code and it was Time Limit Exceded only because it was made in java.
int n =nextInt();
long x = nextLong();
long[] a = new long[n];
for (int i = 0; i < n; i++)
a[i]=nextLong();
Arrays.sort(a);
long resp = 0;
for (int i = 0; i < n; i++)
{
resp += (x*a[i]);
x--;
x = Math.max(1,x);
}
out.println(resp);I would like to know who is in charge of this king of issue?









The same happened to me, it's only after the contest, that it was accepted when I replaced the
int[] arr = new int[n]withInteger[] arr = new Integer[n]..And it makes me confused, as I made a benchmark to compute the difference of sorting between
int[]andInteger[]usingArrays.sort(),Integer[]was 2.3 slower thanint[].Any idea, anyone?
Because java uses qick sort for primitive array.So worst complexity time is O(n^2) even if it uses randomisation algorithm for choosing pivot in some cases.Otherwise it uses tim sort which is O(nlog(n)).
I had no idea that for primitive data types, quick-sort is used. This is the first time I've fallen victim to using Arrays.sort() on primitive data-type array. I always thought merge-sort was implemented on the backend code, never really looked into it. As I've found out today, I was horribly wrong. Well, at least I learned something today.
For those who still have doubts/more information visit the documentation: http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
Excellent View! Thx:)
There are special tests on which solutions in Java with sorting of primitive data types arrays work too slow: 1, 2 (first link in Russian only, use Google Translate).
As 1e9 says, Arrays.sort uses quicksort, which could be O(N^2).
Collections.sort use merge sort, which is always O(N*log(N)).
You can check it at the documenation for Arrays and Collections
I think, Scanner is too slow..
Topic author uses self-written routines instead of
Scanner.BTW, my anti-Java6-quicksort is almost 3 years old, Java 6 is now deprecated, but new victims continue to appear :).