Заданы длины n отрезков. Какое наибольшее количество квадратов можно из них составить? Сторона каждого квадрата должна состоять только из одного отрезка.
В первой строке находится количество отрезков n (1 ≤ n ≤ 106
). Во второй строке заданы n натуральных чисел - длины отрезков, числовые значения которых не превышают 100.
Вывести максимально возможное количество квадратов, которое можно составить из заданных отрезков.
#include <iostream>
#include <vector>
using namespace std;
vector <pair<long long, long long>> vect;
long long n, answer = 0, tmp;
bool push;
int main()
{
cin >> n;
for (long long i = 0; i < n; i++)
{
cin >> tmp;
push = false;
for (int j = 0; j < vect.size(); j++)
{
if (vect[j].first == tmp)
{
push = true;
vect[j].second++;
}
}
if (!push) vect.push_back(make_pair(tmp, 1));
}
for (int i = 0; i < vect.size(); i++) answer += vect[i].second / 4;
cout << answer << endl;
}
Есть решение которого нет на сайте? Пиши admin@devexe.top