Submission

Status:
-PPPP--PP-

Score: 60

User: kaka

Problemset: Maximum Adjacent

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-25 08:55:15

#include <bits/stdc++.h>
using namespace std;
bool mx(int a, int b, int c){
    int res = max(a,b);
    res = max(res,c);
    if(res == b){
        return true;
    }
    return false;
}
int main()
{
    string s;
    getline(cin, s);
    for(auto &c : s){
        if(isalpha(c)){
            c = ' ';
        }
    }
    stringstream iss(s);
    int temp;
    vector<int> nums;
    while(iss >> temp){
        nums.push_back(temp);
    }
    if(nums.size()% 3 == 1){
        vector<int> pro;
        pro.push_back(0);
        pro.insert(pro.end(), nums.begin(), nums.end());
        pro.push_back(0);
        for(int i = 1; i < pro.size(); i++){
            if(pro[i] == pro.size() - 1){
                if(pro[i] > pro[i - 1]){
                    cout << pro[i];
                }
            }
            if(mx(pro[i - 1], pro[i], pro[i + 1])){
                cout << pro[i] << ' ';
            }
        }
        return 0;
    }
    else if(nums.size()% 3 == 2){
        nums.push_back(0);
    }
    for(int i = 1; i < nums.size() - 1; i++){
        if(nums[i] == nums.size() - 1){
            if(nums[i] > nums[i - 1]){
                cout << nums[i];
            }
        }
        if(mx(nums[i - 1], nums[i], nums[i + 1])){
            cout << nums[i] << ' ';
        }
    }
}