Submission #1299996

#TimeUsernameProblemLanguageResultExecution timeMemory
1299996PakinDioxideRestore Array (RMI19_restore)C++17
0 / 100
130 ms836 KiB
#include <bits/stdc++.h>
#define ll long long

using namespace std;

int main() {
    ios::sync_with_stdio(0), cin.tie(0);
    int n, m; cin >> n >> m;
    int dis[n+1]; memset(dis, 0, sizeof(dis));
    vector <pair <int, int>> adj[n+1];
    vector <tuple <int, int, int>> chk;
    for (int i = 0; i < n; i++) adj[i].emplace_back(i+1, 0);
    while (m--) {
        int l, r, k, v; cin >> l >> r >> k >> v;
        r++;
        if (v == 1) chk.emplace_back(l, r, k);
        else adj[l].emplace_back(r, k);
    }
    for (int c = 0; c <= n; c++) {
        for (int u = 0; u <= n; u++) {
            for (auto [v, w] : adj[u]) dis[v] = max(dis[v], dis[u] + w);
        }
    }
    for (auto &[l, r, k] : chk) if (dis[r] - dis[l] >= k) { cout << -1 << '\n'; return 0; }
    for (int i = 1; i <= n; i++) cout << dis[i] - dis[i-1] << ' '; cout << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...