Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by alex.insulin on 26.05.2016.
- //
- /*
- * От цифровых датчиков в компьютер поступает информация о характеристиках физического процесса.
- * Результатом каждого измерения является неотрицательное целое число.
- * Вам предлагается написать эффективную, в том числе по используемой памяти, программу, которая будет выводить третье по величине (считая от максимума) значение измерения.
- * Если несколько измерений имеют одинаковые значения, то они учитываются как одно измерение.
- * Если искомого значения не существует (например, когда все значения измерений равны), то нужно вывести символ «#».
- * Следует учитывать, что количество измерений может быть очень велико.
- * Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи.
- * На вход программе в первой строке подаётся общее количество N значений измерений.
- * В каждой из последующих N строк записано целое число. Гарантируется, что N > 1, то есть всегда имеется хотя бы одно измерение.
- */
- /*
- * Пример входных данных:
- 5
- 100
- 10
- 100
- 10
- 100
- *
- * Пример выходных данных для приведённого выше примера входных данных:
- * #
- */
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- int main() {
- unsigned int n;
- vector <int> vector;
- cin >> n;
- //Добавление в вектор только тех чисел, которые в нём не встречаются
- for (int i = 0; i < n; ++i) {
- int result;
- cin >> result;
- if ( std::find(vector.begin(), vector.end(), result) == vector.end() ) {
- vector.push_back(result);
- }
- }
- //Выводит значение 3 элемента вектора с конца, при его отсуствии - #
- if (vector.size() < 3) {
- cout << "#";
- }
- else {
- sort(vector.begin(), vector.end());
- cout << vector[vector.size()-3];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement