제출 #1049325

#제출 시각아이디문제언어결과실행 시간메모리
1049325PlayVoltzRestore Array (RMI19_restore)C++17
100 / 100
130 ms1620 KiB
#include <cstdio> #include <stdio.h> #include <stdbool.h> #include <iostream> #include <map> #include <vector> #include <climits> #include <stack> #include <string> #include <queue> #include <algorithm> #include <set> #include <unordered_set> #include <unordered_map> #include <cmath> #include <cctype> #include <bitset> #include <iomanip> #include <cstring> #include <numeric> #include <cassert> #include <random> #include <fstream> using namespace std; #define int long long #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second struct trio{ int a, b, c; }; int32_t main(){ int n, m, a, b, c, d; cin>>n>>m; vector<int> psum(n+1, LLONG_MAX/2); psum[0]=0; vector<trio> vect; while (m--){ cin>>a>>b>>c>>d; ++a, ++b; if (d)vect.pb({a-1, b, c-1}); else vect.pb({b, a-1, -c}); } for (int i=1; i<=n; ++i)vect.pb({i-1, i, 1}), vect.pb({i, i-1, 0}); for (int i=0; i<n; ++i)for (auto [b, a, c]:vect)psum[a]=min(psum[a], psum[b]+c); for (auto [b, a, c]:vect)if (psum[b]+c<psum[a]){cout<<-1;return 0;} for (int i=1; i<=n; ++i)cout<<!(psum[i]-psum[i-1])<<" "; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...