Submission #548174

#TimeUsernameProblemLanguageResultExecution timeMemory
548174CommandMasterRestore Array (RMI19_restore)C++17
100 / 100
453 ms1044 KiB
#include <bits/stdc++.h> using namespace std; #define ll int #define vll vector<ll> #define vvll vector<vll> #define pll pair<ll,ll> int main() { ll n, m; cin >> n >> m; vector<pair<pair<ll, ll>, ll>> graph(n+1); for (ll i = 0; i < n; i++) graph.push_back({{i, i+1}, 1}), graph.push_back({{i+1, i}, 0}); for (ll i = 0; i < m; i++) { ll l, r, k, v; cin >> l >> r >> k >> v; k--; if (v == 1) { // cout << l << ' ' << r+1 << ' ' << -((r-l+1)-k) << endl; graph.push_back({{r+1, l}, k-(r-l+1)}); } else { // cout << r+1 << ' ' << l << ' ' << (r-l+1)-k-1 << endl; graph.push_back({{l, r+1}, (r-l+1)-k-1}); } } vll dist(n+1, 1e9); dist[0] = 0; bool changed = true; for (ll i = 0; i < n+2; i++) { // for (ll j = 0; j < n+1; j++) cout << dist[j] << ' '; // cout << endl; changed = false; for (auto e : graph) { if (dist[e.first.second] > dist[e.first.first] + e.second) { changed = true; dist[e.first.second] = dist[e.first.first] + e.second; } } if (!changed) break; } if (changed) { cout << -1 << endl; return 0; } for (ll i = 0; i < n; i++) cout << dist[i+1] - dist[i] << ' '; cout << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...