제출 #923804

#제출 시각아이디문제언어결과실행 시간메모리
923804aykhnRestore Array (RMI19_restore)C++17
7 / 100
719 ms1512 KiB
#include <bits/stdc++.h>
// author: aykhn
using namespace std;
#define int long long
#define inf 0x3F3F3F3F

const int MXN = 5e3 + 5;

int n, m;
vector<array<int, 2>> adj[MXN];
int dist[MXN];

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        adj[i].push_back({i + 1, 1});
        adj[i + 1].push_back({i, 0});
    }
    for (int i = 1; i <= n; i++) dist[i] = inf;
    while (m--)
    {
        int l, r, k, v;
        cin >> l >> r >> k >> v;
        r++;
        int sz = r - l;
        if (v == 1)
        {
            int mx = sz;
            int mn = sz - k + 1;
            adj[l].push_back({r, sz});
            adj[r].push_back({l, -mn});
        }
        else
        {
            int mn = 0;
            int mx = sz - k;
            adj[l].push_back({r, mx});
            adj[r].push_back({l, -mn});
        }
    }
    int f = 0;
    for (int i = 1; i <= n + 1; i++)
    {
        f = 0;
        for (int j = 0; j <= n; j++)
        {
            for (const array<int, 2> &x : adj[j])
            {
                if (dist[j] + x[1] < dist[x[0]]) f = 1;
                dist[x[0]] = min(dist[x[0]], dist[j] + x[1]);
            }
        }
    }
    if (f)
    {
        cout << -1 << '\n';
        return 0;
    }
    for (int i = 1; i <= n; i++)
    {
        cout << dist[i] - dist[i - 1] << ' ';
    }
    cout << '\n';
}

컴파일 시 표준 에러 (stderr) 메시지

restore.cpp: In function 'int main()':
restore.cpp:32:17: warning: unused variable 'mx' [-Wunused-variable]
   32 |             int mx = sz;
      |                 ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...