Advertisement
Guest User

Untitled

a guest
May 26th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.75 KB | None | 0 0
  1. //
  2. // Created by alex.insulin on 26.05.2016.
  3. //
  4.  
  5. /*
  6.  * От цифровых датчиков в компьютер поступает информация о характеристиках физического процесса.
  7.  * Результатом каждого измерения является неотрицательное целое число.
  8.  * Вам предлагается написать эффективную, в том числе по используемой памяти, программу, которая будет выводить третье по величине (считая от максимума) значение измерения.
  9.  * Если несколько измерений имеют одинаковые значения, то они учитываются как одно измерение.
  10.  * Если искомого значения не существует (например, когда все значения измерений равны), то нужно вывести символ «#».
  11.  * Следует учитывать, что количество измерений может быть очень велико.
  12.  * Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи.
  13.  * На вход программе в первой строке подаётся общее количество N значений измерений.
  14.  * В каждой из последующих N строк записано целое число. Гарантируется, что N > 1, то есть всегда имеется хотя бы одно измерение.
  15.  */
  16.  
  17. /*
  18.  * Пример входных данных:
  19.   5
  20.   100
  21.   10
  22.   100
  23.   10
  24.   100
  25.  *
  26.  * Пример выходных данных для приведённого выше примера входных данных:
  27.  * #
  28.  */
  29.  
  30. #include <iostream>
  31. #include <vector>
  32. #include <algorithm>
  33.  
  34. using namespace std;
  35.  
  36. int main() {
  37.     unsigned int n;
  38.     vector <int> vector;
  39.     cin >> n;
  40.  
  41.     //Добавление в вектор только тех чисел, которые в нём не встречаются
  42.     for (int i = 0; i < n; ++i) {
  43.         int result;
  44.         cin >> result;
  45.  
  46.         if ( std::find(vector.begin(), vector.end(), result) == vector.end() ) {
  47.             vector.push_back(result);
  48.         }
  49.     }
  50.  
  51.     //Выводит значение 3 элемента вектора с конца, при его отсуствии - #
  52.     if (vector.size() < 3) {
  53.         cout << "#";
  54.     }
  55.     else {
  56.         sort(vector.begin(), vector.end());
  57.         cout << vector[vector.size()-3];
  58.     }
  59.  
  60.  
  61.  
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement