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;
}