Codemaster
Open in Telegram
💯% Working Solution Provider of any Codechef Contest Very Trustable
Show more5 799
Subscribers
No data24 hours
-127 days
-7330 days
Posts Archive
5 799
Dm.class Solution
{
public:
vector lexicographicallySmallestArray(vector &nums, int limit)
{
vector> vecPairs;
for (int i = 0; i < nums.size(); i++)
vecPairs.push_back({nums[i], i});
sort(vecPairs.begin(), vecPairs.end());
set inddexes;
vector ele;
inddexes.insert(vecPairs[0].second);
ele.push_back(vecPairs[0].first);
for (int i = 1; i < nums.size(); i++)
{
if (abs(vecPairs[i].first - vecPairs[i - 1].first) <= limit)
inddexes.insert(vecPairs[i].second), ele.push_back(vecPairs[i].first);
else
{
int k = 0;
for (auto &index : inddexes)
nums[index] = ele[k++];
inddexes.clear();
ele.clear();
inddexes.insert(vecPairs[i].second);
ele.push_back(vecPairs[i].first);
}
}
int k = 0;
for (int index : inddexes)
nums[index] = ele[k++];
return nums;
}
};
