Квадраты C++

Заданы длины 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;
}

Назад

Повышение продаж с помощью веб-форм Разложение числа на простые множители Как качественный контент способствует продвижению сайта Как выбрать хостинг Как писать SEO-тексты? Что такое SEO оптимизация сайта


Хостинг

Есть решение которого нет на сайте? Пиши admin@devexe.top