Регистрация
12 Мар 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
3) Задача «Количество совпадающих пар»

Условие

Дан массив чисел. Посчитайте, сколько в нем пар элементов, равных друг другу.

Считается, что любые два элемента, равные друг другу образуют одну пару, которую необходимо посчитать. (с динамическими массивами, библиотека только iostream)
 
#include

using namespace std;

size_t count_pair(int* box, const size_t n) {
size_t count = 0;
for (size_t i = 0, j = 1; j < n; ++i, ++j) {
if (box == box[j]) {
++count;
}
}
return count;
}

void input_array(int* box, const size_t n) {
cout > box;
}
}

size_t array_size() {
size_t value = 0;
while (!value) {
cout > value;
cin.ignore(0x1000, '\n');
}
return value;
}

int* create_array(const size_t n) {
return new(nothrow) int[n];
}

int* destroy_array(int* box) {
if (box != nullptr) {
delete[] box;
box = nullptr;
}
return box;
}

int main() {
const auto n = array_size();
auto box = create_array(n);
if (box != nullptr) {
input_array(box, n);
const auto count = count_pair(box, n);
cout
 
#include
#include

int main() {
int n;
std::cin >> n;
std::unordered_map counts;
for (int i = 0; i < n; i++) {
int x;
std::cin >> x;
counts[x]++;
}
int result = 0;
for (auto& [key, value] : counts) {
result += value * (value - 1) / 2;
}
std::cout
 
Не совсем понятен вопрос.
Если в массиве три одинаковых элемента,
образуют ли они пары?
например
01 2 3456 - это индексы
АBБГБДБ - это массив

пары:
2-4
2-6
4-6
Так ли это?
 
Назад
Сверху