csansoon

P7.09 X41120 Vector of mountains

Nov 14th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5.  
  6. vector<int> obtain_peaks(const vector<int>& v) {
  7.         int tam_v = v.size();
  8.         int tam_sol;
  9.         if (tam_v%2 == 0) tam_sol = tam_v/2 - 1;
  10.         else tam_sol = tam_v/2;
  11.         vector<int> u(tam_sol, 0);
  12.         int k = 0;
  13.         for (int i = 1; i < tam_v-1; ++i) {
  14.                 if (v[i] > v[i-1] && v[i] > v[i+1]) {
  15.                         u[k] = v[i];
  16.                         ++k;
  17.                 }
  18.         }
  19.         return u;      
  20. }
  21.  
  22. int main() {
  23.         int n;
  24.         cin >> n;
  25.         vector<int> v(n);
  26.         for (int i = 0; i < n; ++i) {
  27.                 cin >> v[i];
  28.         }
  29.         int count = 0;
  30.         for (int i = 0; obtain_peaks(v)[i] != 0; ++i) {
  31.                 ++count;
  32.         }
  33.         int cim_max;
  34.         cout << count << ":";
  35.         for (int i = 0; obtain_peaks(v)[i] != 0; ++i) {
  36.                 cout << " " << obtain_peaks(v)[i];
  37.                 cim_max = obtain_peaks(v)[i];
  38.         }
  39.         cout << endl;
  40.         bool higher = false;
  41.         bool primer = true;
  42.         for (int i = 0; obtain_peaks(v)[i] != 0; ++i) {
  43.                 if (obtain_peaks(v)[i] > cim_max) {
  44.                         if (primer) primer = false;
  45.                         else cout << " ";
  46.                         cout << obtain_peaks(v)[i];
  47.                         higher = true;
  48.                 }
  49.         }
  50.         if (not higher) cout << "-" << endl;
  51.         else cout << endl;
  52. }
  53.  
  54. // (c) Carlos Sansón (Best pro1 delegate ever for sure) @csansoon
Add Comment
Please, Sign In to add comment