Getting Runtime Error
OK I checked with many people and I came to know that there is a bug in that problem. Many codes which should have gotten a TLE or WA are getting NZEC for no reason whatsoever. I tested your code and it is giving WA for this (and other) test case:
12
1 2 3 3 1 2 4 5 1 1 2 3
3
Your output:3 3 3 2 4 5 5 5 2 3
Expected output: 3 3 3 3 4 5 5 5 2 3
I tried this problem using Segment Tree and got accepted.
@michelangelo The class name doesn’t matter, all my java programs have their class names according to the problem code.
Main isn’t required.
Remove this line:
br.readLine();
which comes after
int n=Integer.parseInt(br.readLine());
@michelangelo I have modified the code. Now i can have multiple instances of any number by using a Map. So i am still getting wrong answer https://ideone.com/Oauvj9 .Also the above posted test case is working.
This is just a check. When I used fast I/O in my code, it showed WA. Try using scanner in place of buffered reader. Tell me if you are getting WA or TLE now.
Yup checked it. Remove buffered reader and use scanner and you’ll get AC.
PS: No wonder there are only 33 correct submissions in Java.
I also solved this problem using Segment Tree.
@michelangelo Yes, Using Scanner did get it accepted. This is the first time i am seeing this. Using slower input method is accepted :D.
@michelangelo Can you please look into this discussion. http://discuss.codechef.com/questions/54005/spoj-bytesm2
I’ll check that. Please do accept the answer so that the question can be closed.