# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
198588 | 2020-01-26T17:40:06 Z | Akashi | Restore Array (RMI19_restore) | C++14 | 600 ms | 26240 KB |
#include <bits/stdc++.h> using namespace std; const int INF = 1e9; int n, m; vector <pair <int, int> > v[5005]; void add_edge(int x, int y, int c){ v[x].push_back({y, c}); } int d[5005], viz[5005]; queue <int> q; bool bellman(){ for(int i = 1; i <= n ; ++i) d[i] = INF; q.push(0); d[0] = 0; while(!q.empty()){ int nod = q.front(); q.pop(); ++viz[nod]; if(viz[nod] > n + 1) return 0; for(auto it : v[nod]){ if(d[it.first] > d[nod] + it.second){ d[it.first] = d[nod] + it.second; q.push(it.first); } } } return 1; } int main(){ scanf("%d%d", &n, &m); for(int i = 1; i <= n ; ++i) add_edge(i - 1, i, 1); int l, r, k, val; for(int i = 1; i <= m ; ++i){ scanf("%d%d%d%d", &l, &r, &k, &val); ++l; ++r; if(val == 1) add_edge(r, l - 1, (k - 1) - (r - l + 1)); else add_edge(l - 1, r, (r - l + 1) - k); } for(int i = 0; i <= n ; ++i) sort(v[i].begin(), v[i].end()); bool ok = bellman(); if(!ok) printf("-1"); else{ for(int i = 1; i <= n ; ++i) printf("%d ", d[i] - d[i - 1]); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
2 | Incorrect | 5 ms | 504 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 760 KB | Output is correct |
2 | Correct | 18 ms | 760 KB | Output is correct |
3 | Correct | 18 ms | 888 KB | Output is correct |
4 | Correct | 17 ms | 760 KB | Output is correct |
5 | Execution timed out | 635 ms | 26240 KB | Time limit exceeded |
6 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 17 ms | 760 KB | Output is correct |
2 | Correct | 18 ms | 760 KB | Output is correct |
3 | Correct | 18 ms | 888 KB | Output is correct |
4 | Correct | 17 ms | 760 KB | Output is correct |
5 | Execution timed out | 635 ms | 26240 KB | Time limit exceeded |
6 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
2 | Incorrect | 5 ms | 504 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |