Условие задачи
Орки – одна из рас, населяющих мир Драэнор. Не отличаясь высоким интелектом, орки все же славятся своею силой и отвагой в бою. Ежегодно орки из разных кланов собираются в Долине Силы для того, чтобы избрать вождя всей Орды. В отличие от глупых людей, орки презирают выборы посредством голосования (да и, скажем прямо, все эти бюлетени, урны и избирательные участки чужды и непонятны орку, не державшему в руках ничего, кроме дубины и топора). Кандидаты в вожди сражаются друг с другом в честных поединках. В каждом поединке участвуют два претендента, один из которых выходит из него победителем, а другой оказывается поверженным. Проигравший в одном поединке орк выбывает из числа претендентов и не может участвовать в последующих поединках. Оставшийся в конце концов после всех боев кандидат и становит вождем Орды.
Старейшины орков всегда наблюдают за выборами и любят предугадывать кто победит на них. Однако далеко не всегда можно предсказать не то, что общую победу на выборах, но даже победителя в одном конкретном бою. Конечно же все зависит от силы сражающихся – кто сильнее, тот и победит, однако в случае равенства сил может победить любой из них – тут уж как звезды станут.
Старейшины обратились к вам с просьбой написать программу для определения количества претендентов, которые могут стать вождями.
Входные данные
В первой строке входного файла записано количество [latex]N[/latex] претендентов на звание вождя в этом году [latex](1 ≤ N ≤ 1000000)[/latex], а во второй – [latex]N[/latex] целых чисел в пределах от [latex]1[/latex] до [latex]10000[/latex], каждое из которых определяет силу соответствующего кандидата.
Выходные данные
Выходной файл должен содержать одно число – количество претендентов, которые могут стать вождями.
Тесты
Входные данные | Выходные данные |
[latex]5 \\ 1 \: 2 \: 3 \: 4 \: 5[/latex] | [latex]1[/latex] |
[latex]6 \\ 2 \: 2 \: 2 \: 2 \: 2 \: 2[/latex] | [latex]6[/latex] |
[latex]6 \\ 3 \: 2 \: 1 \: 3 \: 1 \: 1[/latex] | [latex]2[/latex] |
[latex]9 \\ 3 \: 2 \: 1 \: 3 \: 1 \: 5 \: 1 \: 5 \: 5[/latex] | [latex]3[/latex] |
[latex]2 \\ 1 \: 2 [/latex] | [latex]1[/latex] |
[latex]6 \\ 1 \: 7 \: 3 \: 4 \: 5 \: 5[/latex] | [latex]1[/latex] |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> using namespace std; int main() { int quantity, force, count = 0, max = 0; cin >> quantity; while (cin >> force) { if (force > max) { max = force; count = 1; } else if (force == max) count++; } cout << count; return 0; } |
Решение задачи
Так как задача на потоковую обработку создаем цикл, который работает пока у нас вводится число «Сила Орков». В самом цикле происходит следующее:
- Если «Сила Орков» больше max, то мы в переменную max присваиваем значение из «Силы Орков» и счетчику присваиваем единицу.
- Если «Сила Орков» равна max то мы прибавляем к счетчику [latex]1[/latex].
Выводим счетчик на экран.
Ссылки