Submission #1218582

#TimeUsernameProblemLanguageResultExecution timeMemory
1218582lopkusRestore Array (RMI19_restore)C++20
100 / 100
264 ms680 KiB
#include <stdio.h> int n, y, m, u[99999], v[99999], w[99999], d[9999]; /* xj - xi <= ww */ void inequality(int i, int j, int ww) { u[y] = i; v[y] = j; w[y] = ww; ++y; } int main() { scanf("%d%d", &n, &m); for (int l, r, k, value; m--; ) { scanf("%d%d%d%d", &l, &r, &k, &value); k = (r - l + 2) - k; ++r; if (value) { inequality(r, l, -k); } else { inequality(l, r, k - 1); } } for (int i = 0; i <= n; ++i) { if (i) { inequality(i - 1, i, 1); inequality(i, i - 1, 0); } d[i] = 1e9; } d[0] = 0; for (int j = 0; j <= n + 1; ++j) for (int i = 0; i < y; ++i) { if (d[u[i]] + w[i] < d[v[i]]) { d[v[i]] = d[u[i]] + w[i]; } } for (int i = 0; i < y; ++i) { if (d[u[i]] + w[i] < d[v[i]]) { puts("-1"); return 0; } } for (int i = 1; i <= n; ++i) printf("%d ", d[i] - d[i - 1]); return 0; }

Compilation message (stderr)

restore.cpp: In function 'int main()':
restore.cpp:14:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |         scanf("%d%d", &n, &m);
      |         ~~~~~^~~~~~~~~~~~~~~~
restore.cpp:17:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |                 scanf("%d%d%d%d", &l, &r, &k, &value);
      |                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...