/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static int minimumSwaps(int[] arr) {
int swaps = 0;
HashMap
<Integer, Integer
> hm
= new HashMap
<>(); for(int i=0; i<arr.length; i++)
hm.put(arr[i],i); //unsorted
int [] temp = arr;
for(int num: hm.keySet()) {
int index = hm.get(num);
System.
out.
println(index
+ " " + num
); if(temp[index] != arr[index]) {
int actual_index = hm.get(temp[index]);
int t = arr[index];
arr[index] = arr[actual_index];
arr[actual_index] = t;
swaps++;
}
}
return swaps;
}
{
// your code goes here
int arr[] = {1, 3, 5, 2, 4, 6, 7};
System.
out.
println(minimumSwaps
(arr
)); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXN0YXRpYyBpbnQgbWluaW11bVN3YXBzKGludFtdIGFycikgewogICAgICAgIGludCBzd2FwcyA9IDA7CiAgICAgICAgSGFzaE1hcDxJbnRlZ2VyLCBJbnRlZ2VyPiBobSA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICBmb3IoaW50IGk9MDsgaTxhcnIubGVuZ3RoOyBpKyspCiAgICAgICAgICAgIGhtLnB1dChhcnJbaV0saSk7IC8vdW5zb3J0ZWQKCiAgICAgICAgaW50IFtdIHRlbXAgPSBhcnI7CiAgICAgICAgQXJyYXlzLnNvcnQodGVtcCk7CiAgICAgICAgCiAgICAgICAgZm9yKGludCBudW06IGhtLmtleVNldCgpKSB7CiAgICAgICAgICAgIGludCBpbmRleCA9IGhtLmdldChudW0pOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaW5kZXggKyAiICIgKyBudW0pOwogICAgICAgICAgICBpZih0ZW1wW2luZGV4XSAhPSBhcnJbaW5kZXhdKSB7CiAgICAgICAgICAgICAgICBpbnQgYWN0dWFsX2luZGV4ID0gaG0uZ2V0KHRlbXBbaW5kZXhdKTsKICAgICAgICAgICAgICAgIGludCB0ID0gYXJyW2luZGV4XTsKICAgICAgICAgICAgICAgIGFycltpbmRleF0gPSBhcnJbYWN0dWFsX2luZGV4XTsKICAgICAgICAgICAgICAgIGFyclthY3R1YWxfaW5kZXhdID0gdDsKICAgICAgICAgICAgICAgIHN3YXBzKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN3YXBzOwogICAgfQoKCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCWludCBhcnJbXSA9IHsxLCAzLCA1LCAyLCA0LCA2LCA3fTsKCQlTeXN0ZW0ub3V0LnByaW50bG4obWluaW11bVN3YXBzKGFycikpOwoJfQp9