Submission #559096

#TimeUsernameProblemLanguageResultExecution timeMemory
559096Tenis0206Restore Array (RMI19_restore)C++11
20 / 100
1089 ms864 KiB
#include <bits/stdc++.h> using namespace std; const int oo = 0x3f3f3f3f; int n,m; int d[5005],nr[5005]; bool sel[5005]; vector<pair<int,int>> G[5005]; void Bellman() { queue<int> q; for(int i=0; i<=n; i++) { d[i] = oo; sel[i] = false; } d[0] = 0; sel[0] = true; q.push(0); nr[0] = 1; while(!q.empty()) { int x = q.front(); q.pop(); sel[x] = false; for(auto it : G[x]) { if(nr[it.first]>n) { cout<<-1<<'\n'; return; } if(d[x]+it.second<d[it.first]) { d[it.first]=d[x]+it.second; if(!sel[it.first]) { q.push(it.first); sel[it.first]=true; } nr[it.first]=nr[x]+1; if(nr[it.first]>n) { cout<<-1<<'\n'; return; } } } } for(int i=0; i<=n; i++) { for(auto it : G[i]) { if(d[i] + it.second < d[it.first]) { cout<<-1<<'\n'; return; } } } for(int i=1; i<=n; i++) { cout<<d[i] - d[i-1]<<' '; } } int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>n>>m; for(int i=1; i<=n; i++) { G[i-1].push_back({i,1}); G[i].push_back({i-1,0}); } for(int i=1; i<=m; i++) { int l,r,k,val; cin>>l>>r>>k>>val; ++l; ++r; if(val==0) { G[l-1].push_back({r,(r - l + 1) - k}); } else { G[r].push_back({l-1,-((r - l + 1) - (k - 1))}); } } Bellman(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...