답안 #367441

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
367441 2021-02-17T11:01:17 Z alextodoran Restore Array (RMI19_restore) C++17
7 / 100
600 ms 1004 KB
/**
 ____ ____ ____ ____ ____
||a |||t |||o |||d |||o ||
||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|

**/

#include <bits/stdc++.h>

#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

using namespace std;

typedef long long ll;

const int N_MAX = 5002;
const int M_MAX = 10002;

int n, m;

struct Edge
{
    int u;
    int len;
};

vector <Edge> edges[N_MAX];

int dist[N_MAX];

queue <int> q;

int times[N_MAX];

bool inq[N_MAX];

bool BellmanFord ()
{
    for(int i = 0; i <= n; i++)
        dist[i] = INT_MAX;
    dist[0] = 0;
    inq[0] = true;
    q.push(0);
    while(q.empty() == false)
    {
        int u = q.front();
        q.pop();
        inq[u] = false;
        for(Edge &e : edges[u])
            if(dist[u] + e.len < dist[e.u])
            {
                dist[e.u] = dist[u] + e.len;
                if(inq[e.u] == false)
                {
                    q.push(e.u);
                    inq[e.u] = true;
                }
                if(++times[e.u] >= n)
                    return false;
            }
    }
    return true;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> m;
    for(int i = 1; i <= n; i++)
    {
        edges[i].push_back(Edge{i - 1, 0});
        edges[i - 1].push_back(Edge{i, 1});
    }
    for(int i = 1; i <= m; i++)
    {
        int l, r, k;
        bool val;
        cin >> l >> r >> k >> val;
        l++;
        r++;
        if(val == 0)
            edges[r].push_back(Edge{l - 1, -k});
        else
            edges[l - 1].push_back(Edge{r, k - 1});
    }
    if(BellmanFord() == true)
    {
        for(int i = 1; i <= n; i++)
            cout << 1 - (dist[i] - dist[i - 1]) << " ";
        cout << "\n";
    }
    else
        cout << "-1\n";
    return 0;
}

Compilation message

restore.cpp:12: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
   12 | #pragma GCC optimization ("O3")
      | 
restore.cpp:13: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
   13 | #pragma GCC optimization ("unroll-loops")
      |
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 492 KB Output is correct
2 Correct 1 ms 492 KB Output is correct
3 Correct 1 ms 492 KB Output is correct
4 Correct 1 ms 492 KB Output is correct
5 Correct 1 ms 492 KB Output is correct
6 Correct 1 ms 492 KB Output is correct
7 Correct 1 ms 492 KB Output is correct
8 Correct 1 ms 492 KB Output is correct
9 Correct 1 ms 492 KB Output is correct
10 Correct 1 ms 492 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 876 KB Output is correct
2 Correct 6 ms 876 KB Output is correct
3 Correct 5 ms 876 KB Output is correct
4 Correct 5 ms 876 KB Output is correct
5 Execution timed out 747 ms 1004 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 876 KB Output is correct
2 Correct 6 ms 876 KB Output is correct
3 Correct 5 ms 876 KB Output is correct
4 Correct 5 ms 876 KB Output is correct
5 Execution timed out 747 ms 1004 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 492 KB Output is correct
2 Correct 1 ms 492 KB Output is correct
3 Correct 1 ms 492 KB Output is correct
4 Correct 1 ms 492 KB Output is correct
5 Correct 1 ms 492 KB Output is correct
6 Correct 1 ms 492 KB Output is correct
7 Correct 1 ms 492 KB Output is correct
8 Correct 1 ms 492 KB Output is correct
9 Correct 1 ms 492 KB Output is correct
10 Correct 1 ms 492 KB Output is correct
11 Correct 7 ms 876 KB Output is correct
12 Correct 6 ms 876 KB Output is correct
13 Correct 5 ms 876 KB Output is correct
14 Correct 5 ms 876 KB Output is correct
15 Execution timed out 747 ms 1004 KB Time limit exceeded
16 Halted 0 ms 0 KB -