1536 < 2048
2048 = 2 ^11
11 битов нужно для идентификации номера
11*1536 = 16896 битов памяти для хранения 1536 абонентов
Проще:
даётся 4 байта или 16бит для целого числа, 1бит отводится на разрядность, если он 0, то число отрицательное, иначе положительное, остальные 15 бит хранят само число
Даю 2 варианта:
1)
#include <iostream>#include <list>using namespace std;
int main() { int n, t; cin >> n; list<int> li; for (int i = 0; i < n; i++) { cin >> t; li.push_back(t); } li.sort(); li.unique(); cout << li.size() << endl; return 0;}
2)
#include <iostream>#include <set>using namespace std;
int main() { int n, t; cin >> n; set<int> se; for (int i = 0; i < n; i++) { cin >> t; se.insert(t); } cout << se.size() << endl; return 0;}