/* 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
{
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in); int n = scanner.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
int res = minimumOperationOptimised(nums);
}
public static int minimumOperationOptimised(int []nums){
Map
<Integer,Integer
> map
=new TreeMap
<>((a,b
)->b
- a
); int cnt=0;
for(int n : nums){
map.put(n,map.getOrDefault(n,0)+1);
}
List
<Map.
Entry<Integer, Integer
>> g
= new ArrayList
<>(map.
entrySet());
// Variables to calculate the steps
int size = g.size();
int step = 0;
for (int i = 0; i < size-1; i++) {
int currEntryVal = g.get(i).getValue();
step+=currEntryVal;
int nextEntryValue = g.get(i+1).getValue();
g.get(i+1).setValue(nextEntryValue+currEntryVal);
}
return step;
}
public static int minimumOperation(int []nums){
int s=0,e=nums.length-1;
while(s<=e){
int temp = nums[s];
nums[s] = nums[e];
nums[e] = temp;
s++;
e--;
}
int cnt=0;
for(int j=0;j<nums.length;j++){
for(int i=1; i<nums.length;i++){
if(nums[i-1] != nums[i]){
nums[i-1] = nums[i];
cnt++;
}
}
if(nums[0] == nums[nums.length-1]) break;
}
return cnt;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCSBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU2Nhbm5lciBzY2FubmVyID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAgICAgICBpbnQgbiA9IHNjYW5uZXIubmV4dEludCgpOwogICAgICAgIGludFtdIG51bXMgPSBuZXcgaW50W25dOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIG51bXNbaV0gPSBzY2FubmVyLm5leHRJbnQoKTsKICAgICAgICB9CiAgICAgICAgaW50IHJlcyA9IG1pbmltdW1PcGVyYXRpb25PcHRpbWlzZWQobnVtcyk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlcyk7CiAgICB9CiAgICAKICAgIAogICAgcHVibGljIHN0YXRpYyBpbnQgbWluaW11bU9wZXJhdGlvbk9wdGltaXNlZChpbnQgW11udW1zKXsKICAgIAlNYXA8SW50ZWdlcixJbnRlZ2VyPiBtYXAgPW5ldyBUcmVlTWFwPD4oKGEsYiktPmIgLSBhKTsKICAgIAlpbnQgY250PTA7CiAgICAJZm9yKGludCBuIDogbnVtcyl7CiAgICAJCW1hcC5wdXQobixtYXAuZ2V0T3JEZWZhdWx0KG4sMCkrMSk7CiAgICAJfQogICAgCQogICAgCVN5c3RlbS5vdXQucHJpbnRsbihtYXApOwogICAgCUxpc3Q8TWFwLkVudHJ5PEludGVnZXIsIEludGVnZXI+PiBnID0gbmV3IEFycmF5TGlzdDw+KG1hcC5lbnRyeVNldCgpKTsKICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oZyk7CiAgICAgICAgCgogICAgICAgIC8vIFZhcmlhYmxlcyB0byBjYWxjdWxhdGUgdGhlIHN0ZXBzCiAgICAgICAgaW50IHNpemUgPSBnLnNpemUoKTsKICAgICAgICBpbnQgc3RlcCA9IDA7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKICAgICAgICAJaW50IGN1cnJFbnRyeVZhbCA9IGcuZ2V0KGkpLmdldFZhbHVlKCk7CiAgICAgICAgCXN0ZXArPWN1cnJFbnRyeVZhbDsKICAgICAgICAJaW50IG5leHRFbnRyeVZhbHVlID0gZy5nZXQoaSsxKS5nZXRWYWx1ZSgpOwogICAgICAgIAlnLmdldChpKzEpLnNldFZhbHVlKG5leHRFbnRyeVZhbHVlK2N1cnJFbnRyeVZhbCk7CiAgICAgICAgfQogICAgCXJldHVybiBzdGVwOwogICAgfQogCiAgICAKICAgIAogICAgcHVibGljIHN0YXRpYyBpbnQgbWluaW11bU9wZXJhdGlvbihpbnQgW11udW1zKXsKICAgIAkKICAgIAlBcnJheXMuc29ydChudW1zKTsKICAgIAlpbnQgcz0wLGU9bnVtcy5sZW5ndGgtMTsKICAgIAl3aGlsZShzPD1lKXsKICAgIAkJaW50IHRlbXAgPSBudW1zW3NdOwogICAgCQludW1zW3NdID0gbnVtc1tlXTsKICAgIAkJbnVtc1tlXSA9IHRlbXA7CiAgICAJCXMrKzsKICAgIAkJZS0tOwogICAgCX0KICAgIAlpbnQgY250PTA7CiAgICAJZm9yKGludCBqPTA7ajxudW1zLmxlbmd0aDtqKyspewogICAgCQkKICAgIAkJZm9yKGludCBpPTE7IGk8bnVtcy5sZW5ndGg7aSsrKXsKCSAgICAJCWlmKG51bXNbaS0xXSAhPSBudW1zW2ldKXsKCSAgICAJCQludW1zW2ktMV0gPSBudW1zW2ldOwoJICAgIAkJCWNudCsrOwoJICAgIAkJfQoJICAgIAkJCiAgICAJCX0KICAgIAkJaWYobnVtc1swXSA9PSBudW1zW251bXMubGVuZ3RoLTFdKSBicmVhazsKICAgIAl9CiAgICAJcmV0dXJuIGNudDsKICAgIH0KIAp9