aboutsummaryrefslogtreecommitdiff
path: root/challenge-205/deadmarshal/cpp/ch-1.cpp
blob: e356586b2b9a68a44ed4379cbf8d59c670e075b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<vector>
#include<algorithm>

template<typename T>
int third_highest(std::vector<T> &vec)
{
  std::sort(vec.begin(),vec.end(),std::greater<T>());
  vec.erase(std::unique(vec.begin(),vec.end()),vec.end());
  if(vec.size() < 3) return vec[0];
  return vec[2];
}

int main()
{
  std::vector<int> vec1{5,3,4},vec2{5,6},vec3{5,4,4,3};
  std::cout << third_highest<int>(vec1) << '\n';
  std::cout << third_highest<int>(vec2) << '\n';
  std::cout << third_highest<int>(vec3) << '\n';
  return 0;
}