#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
if (n <= 0) return 0;
std::vector<int> nums(n);
for (int& x : nums) {
std::cin >> x;
}
std::vector<int> peaks;
peaks.reserve(n);
if (n > 1 && nums[0] > nums[1]) {
peaks.push_back(0);
}
for (int i = 1; i < n - 1; ++i) {
if (nums[i] > nums[i-1] && nums[i] > nums[i+1]) {
peaks.push_back(i);
}
}
if (n > 1 && nums[n-1] > nums[n-2]) {
peaks.push_back(n-1);
}
std::cout << peaks.size() << '\n';
for (int peak : peaks) {
std::cout << peak << ' ';
}
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
int main() {
size_t n;
cin >> n;
if (!n) exit(0);
vector<int> v(n);
for (auto& x : v) cin >> x;
size_t i = 0;
const size_t m = n - 1;
while (++i < m) {
if (v[i - 1] < v[i] && v[i + 1] < v[i]) {
cout << i << ' ';
}
}
cout.put('\n');
}
В первой строке вводится кол-во элементов в массиве.
Во второй строке вводится массив.
Выходные данные
В первой строке выведите одно число
k
— количество искомых элементов.
Во второй строке выведите
k
чисел — индексы этих элементов в возрастающем порядке.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int counter = 0;
int a = 0;
cin >> a;
vector<int> b;
int x;
vector<int> answer;
for(int i = 0; i<a; i++ ){
cin>>x;
b.push_back(x);
}
if(b[0] > b[1]){
answer.push_back(0);
counter +=1;
}
for(int i = 1; i<a-1; i++){
if(b[i]>b[i-1] && b[i]>b[i+1]){
answer.push_back(i);
counter += 1;
}
}
if(b[a-1] > b[a-2]){
answer.push_back(a-1);
counter +=1;
}
cout<<counter<<"\n";
sort(begin(answer), end(answer));
for(int i = 0; i<answer.size(); i++){
cout<<answer[i]<<" ";
}
}