comefrom: <awangdev>Permutation Index_1.java
code: public long permutationIndex(int[] A) {
      	if (A == null || A.length == 0) {
      		return 0;
      	}
      	HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
      	int n = A.length;
      	long rst = 0;
      	for (int i = 0; i < n; i++) {
      	    int count = 0;
      		for (int j = i + 1; j < n; j++) {
      			if (A[j] < A[i]) {
      				count++;
      			}
      		}
      		map.put(A[i], count);
      	}
      	for (int i = 0; i < n; i++) {
      		long fact = 1;
      		for (int j = (n - i - 1); j >= 1; j--) {
      			fact *= j;
      		}
      		rst += map.get(A[i]) * fact;
      	}
      	return rst + 1;
      }
masked: public long sample_funcname ( int [ ] var_0 ) {
    if ( var_0 == null || var_0 . length == 0 ) {
      return 0 ;
    }
    HashMap < Integer , Integer > var_1 = new HashMap < Integer , Integer > ( ) ;
    int var_2 = var_0 . length ;
    long var_3 = 0 ;
    for ( int var_4 = 0 ;
    var_4 < var_2 ;
    var_4 ++ ) {
      int var_5 = 0 ;
      for ( int var_6 = var_4 + 1 ;
      var_6 < var_2 ;
      var_6 ++ ) {
        if ( var_0 [ var_6 ] < var_0 [ var_4 ] ) {
          var_5 ++ ;
        }
      }
      var_1 . put ( var_0 [ var_4 ] , var_5 ) ;
    }
    for ( int var_4 = 0 ;
    var_4 < var_2 ;
    var_4 ++ ) {
      long var_7 = 1 ;
      for ( int var_6 = ( var_2 - var_4 - 1 ) ;
      var_6 >= 1 ;
      var_6 -- ) {
        var_7 *= var_6 ;
      }
      var_3 += var_1 . get ( var_0 [ var_4 ] ) * var_7 ;
    }
    return var_3 + 1 ;
  }
  