# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
198587 | 2020-01-26T17:39:01 Z | Akashi | Restore Array (RMI19_restore) | C++14 | 179 ms | 1016 KB |
/** daca val = 0 atunci inseamna ca intervalul meu are cel putin k de 0 deci suma maxima pe intervalul meu este (r - l + 1) - k * sum[r] - sum[l - 1] <= (r - l + 1) - k daca val = 1 atunci inseamna ca am maxim k - 1 de 0 deci suma minima pe intervalul meu este (r - l + 1) - (k - 1) * sum[r] - sum[l - 1] >= (r - l + 1) - (k - 1) * sum[l - 1] - sum[r] <= (k - 1) - (r - l + 1) intre doua adiacente am : * sum[i] - sum[i - 1] <= 1 muchiile j->i : xi - xj <= c, (in shortest path devine : di <= dj + c) **/ #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){ cerr << x << " " << y << " " << c << endl; 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
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 5 ms | 376 KB | Integer 2 violates the range [-1, 1] |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 179 ms | 1016 KB | Integer 2 violates the range [-1, 1] |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 179 ms | 1016 KB | Integer 2 violates the range [-1, 1] |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 5 ms | 376 KB | Integer 2 violates the range [-1, 1] |
2 | Halted | 0 ms | 0 KB | - |