Submission

Status:
----------

Score: 0

User: Pera

Problemset: Consecutive Subsequence

Language: cpp

Time: 0.002 second

Submitted On: 2025-03-22 15:14:23

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    
    //int maxnum = INT_MIN;
    //int minnum = INT_MAX;
    set<int> ms;
    string str;
    while (cin >> str) {
        if (!isdigit(str[0]) && str[0] != '-') break;
        //if (stoi(str) > maxnum) maxnum = stoi(str);
        //if (stoi(str) < minnum) minnum = stoi(str); 
        ms.insert(stoi(str));
    }

    vector<int> current;
    vector<int> longest;
    int currentnum;

    auto previt = ms.begin();
    auto currit = previt;
    ++currit;

    current.push_back(*previt);

    for (; currit != ms.end(); ++currit) {
        if (current.empty()) {
            current.push_back(*currit);
            if (longest.size() < current.size()) longest = current;
            ++previt;
        } else if (*previt + 1 == *currit) {
            current.push_back(*currit);
            if (longest.size() < current.size()) longest = current;
            ++previt;
        } else {
            current.clear();
            current.push_back(*currit);
            ++previt;
        }
    }

    cout << "---Multiset incoming---" << '\n';
    for (auto it = ms.begin(); it != ms.end(); ++it) {
        cout << *it << ' ';
    }
    cout << '\n' << "---End of multiset---" << '\n';

    for (int k : longest) {
        cout << k << ' ';
    }
    cout << '\n';
}