Задача
Утром многие школьники делают танцевальную зарядку. По сложившейся традиции, ученики танцуют в фирменных футболках. За первые три дня изменения школьниками и преподавателями было замечено, что пара, которая танцует в одинаковых футболках, выглядит эстетичнее. Они решили перед началом зарядки сначала поставить пару из детей в одинаковых футболках, а затем с оставшихся. Отличнику Сереже захотелось научиться быстро считать, сколько эстетических пар можно образовать из всех, кто пришел на зарядку.
Входные данные
Единственная строка входного файла содержит последовательность чисел, записанных через пробел, означающие цвет футболки. Цвет — число в диапазоне от [latex]0[/latex] до [latex]9[/latex]. Всего в строке не более, чем [latex]10^6[/latex] чисел.
Выходные данные
В выходной файл нужно вывести единственное число — количество эстетических пар, которые можно сложить.
Тесты
# | Входные данные | Выходные данные |
---|---|---|
1 | 0 3 6 3 0 0 1 | 2 |
2 | 8 8 9 9 7 6 7 8 4 | 3 |
3 | 5 6 7 3 2 | 0 |
4 | 2 7 6 8 9 2 1 | 1 |
5 | 8 7 7 5 4 3 5 4 8 | 4 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> using namespace std; const int n = 10; int x[n]; int main() { char c; int s = 0; while((c=cin.get())!= EOF){ x[c-'0']++;//перевод символов в цифры } for(int i = 0; i < n; i++) s+=x[i]/2; cout << s << endl; return 0; } |
Решение задачи
Для того, чтобы решить задачу нужно найти количество пар, которые можно составить с заданной последовательности чисел. Для этого создаем массив, состоящий из [latex]10[/latex] элементов, где будем хранить числа, которые означают цвет футболки. Далее будем считывать символы и переводить их в цифры. После прочтения входного потока, найдем числа, из которых можно составить пару,и выведем их количество на экран.
Ссылки
Ссылка на e-olymp
Ссылка на ideone
Потеряли отступ в цикле.
Спасибо, исправила.
Спасибо, исправила.
Зачтено