For this Question: You are given a list of n integers. You can choose any subset of these integers (you can select none or all of them) and then change the sign of these selected integers (i.e. change positive integers to negative and negative integers to positive). Your task is to find the maximum number of different integers that you can obtain after performing this operation.The input consists of an integer n denoting the number of integers in the array. The second line contains n
 integers a<sub>1</sub>, a<sub>2</sub>, …, a<sub>n</sub>.

<b>Constraints</b>
1 &le; n &le; 100
−100 &le; a<sub>i</sub> &le; 100Print one integer: the maximum number of different elements in the array that you can achieve negating numbers in the array.<b>Sample Input 1</b>
4
1 1 2 2
<b>Sample Output 1</b>
4

<b>Sample Input 2</b>
3
1 2 3
<b>Sample Output 2</b>
3

<b>Explanation 1</b>
 If the input list is [1, 1, 2, 2], then you can select both 1's and both 2's and change their signs, which will result in the list [-1, -1, -2, -2]. This list contains four different integers (-2, -1, 1, and 2), which is the maximum possible. Therefore, the output, in this case, would be 4.


<b>Explanation 2</b>
 If the input list is [1, 2, 3], then you can select all three integers and change their signs, which will result in the list [-1, -2, -3]. This list contains three different integers (-1, -2, and -3), which is the maximum possible. Therefore, the output, in this case, would be 3., I have written this Solution Code: #include <bits/stdc++.h>
#include <bits/stdc++.h>
 
using namespace std;
 
int main() {
  int tt=1;
//  cin >> tt;
  while (tt--) {
    int n;
    cin >> n;
    map<int, int> mp;
    int ans = 0;
    for (int i = 0; i < n; i++) {
      int a;
      cin >> a;
      a = abs(a);
      int limit = (a == 0 ? 1 : 2);
      if (mp[a] == limit) {
        continue;
      }
      mp[a] += 1;
      ans += 1;
    }
    cout << ans << '\n';
  }
  return 0;
}
, In this Programming Language: C++, Now tell me if this Code is compilable or not?