Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: konthaina_TH

Problemset: Consecutive Subsequence

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-04 21:25:39

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

int main() {
    vector<int> nums;
    int val;
    while (cin >> val) {
        nums.push_back(val);
    }

    if (nums.empty()) return 0;
    sort(nums.begin(), nums.end());
    nums.erase(unique(nums.begin(), nums.end()), nums.end());
    map<int, int> dp;
    int max_len = 0;
    int end_val = 0;

    for (int x : nums) {
        if (dp.count(x - 1)) {
            dp[x] = dp[x - 1] + 1;
        } else {
            dp[x] = 1;
        }
        if (dp[x] > max_len) {
            max_len = dp[x];
            end_val = x;
        }
    }
    vector<int> result;
    for (int i = 0; i < max_len; i++) {
        result.push_back(end_val - (max_len - 1 - i));
    }
    for (int i = 0; i < result.size(); i++) {
        cout << result[i] << (i == result.size() - 1 ? "" : " ");
    }
    cout << endl;

    return 0;
}