import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static void main(String[] args){
try {
ArrayList<Integer> output2 = new ArrayList<Integer>();
ArrayList<String> input2 = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Integer numberOfInputs = null;
numberOfInputs = new Integer(br.readLine());
for(int i=0;i<2*numberOfInputs;i++){
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
input2.add(new String(br2.readLine()));
}
for(int i=0;i<numberOfInputs;i++){
Long numberOfSoldiers = new Long(input2.get(i*2));
List<Integer> finalOrder = new ArrayList<Integer>();
List<Integer> initialOrder = new ArrayList<Integer>();
String arrangement = input2.get(2*(i+1)-1).toString();
List<Integer> arrangeOrder = new ArrayList<Integer>();
arrangeOrder = fn(arrangement);
for(int j= 1;j<=numberOfSoldiers;j++){
finalOrder.add(j);
initialOrder.add(j);
}
TreeMap<Integer,Integer> answer = new TreeMap<Integer,Integer>();
for(int j= 0;j<numberOfSoldiers;j++){
initialOrder = moveValueAtIndexToFront(initialOrder,finalOrder , j,j-arrangeOrder.get(j));
}
for(int j= 0;j<numberOfSoldiers;j++){
answer.put(initialOrder.get(j), finalOrder.get(j));
}
Iterator it = answer.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
System.out.print(answer.get(pairs.getKey()));
}
if(i!=numberOfInputs-1)
System.out.println();
}
} catch (IOException e) {
System.exit(0);
}
}
public static List<Integer> moveValueAtIndexToFront(List<Integer> arrayToBeShifted,List<Integer> originalArray, int index,int toIndex) {
int valueBeingMoved = originalArray.get(index);
for (int i = index; i > toIndex; i--) {
arrayToBeShifted.set(i, arrayToBeShifted.get(i-1)) ;
}
arrayToBeShifted.set(toIndex, valueBeingMoved);
return arrayToBeShifted;
}
public static List<Integer> fn(String guess) {
String[] sNums = guess.split("");
List<Integer> intArray = new ArrayList<Integer>();
int i=0;
for (String s : sNums) {
if(!s.equals(""))
intArray.add(new Integer(s));
}
return intArray;
}
}
It’s Working fine yar…Y the hell it shows runtime exception on Codechef’s website