Submission #1236651

#TimeUsernameProblemLanguageResultExecution timeMemory
1236651overwatch9거래 (IZhO13_trading)C++20
100 / 100
596 ms35336 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m;
    cin >> n >> m;
    map <int, vector <pair <bool, int>>> mp;
    for (int i = 0; i < m; i++) {
        int l, r;
        int x;
        cin >> l >> r >> x;
        mp[l].push_back({true, x - l});
        mp[r+1].push_back({false, x - l});
    }
    multiset <int> s;
    vector <int> ans(n+1);
    for (int i = 1; i <= n; i++) {
        if (s.empty())
            ans[i] = 0;
        else
            ans[i] = *s.rbegin() + i;
        for (auto j : mp[i]) {
            if (j.first == true)
                s.insert(j.second);
            else {
                s.erase(s.find(j.second));
            }
        }
        if (s.empty())
            ans[i] = 0;
        else
            ans[i] = *s.rbegin() + i;
    }
    for (int i = 1; i <= n; i++)
        cout << ans[i] << ' ';
    cout << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...