답안 #442029

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
442029 2021-07-06T19:32:02 Z JovanB Restore Array (RMI19_restore) C++17
7 / 100
600 ms 568 KB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using ld = long double;

const int MAXN = 5000;

int dist[MAXN+5];

const int INF = 1000000;

int ea[4*MAXN+5];
int eb[4*MAXN+5];
int ec[4*MAXN+5];

int main(){
    ios_base::sync_with_stdio(false), cin.tie(0);
    cout.precision(10);
    cout << fixed;

    int n, m;
    cin >> n >> m;
    vector <tuple <int, int, int>> edges;
    for(int i=1; i<=m; i++){
        int l, r, k, val;
        cin >> l >> r >> k >> val;
        l++;
        r++;
        if(val == 1){
            ea[i] = l-1;
            eb[i] = r;
            ec[i] = k-1;
        }
        else{
            ea[i] = r;
            eb[i] = l-1;
            ec[i] = -k;
        }
    }
    for(int i=1; i<=n; i++){
        m++;
        ea[m] = i-1;
        eb[m] = i;
        ec[m] = 1;
        m++;
        ea[m] = i;
        eb[m] = i-1;
        ec[m] = 0;
    }
    for(int i=1; i<=n; i++) dist[i] = INF;
    for(int k=0; k<n; k++){
        for(int j=1; j<=m; j++){
            int a = ea[j];
            int b = eb[j];
            int c = ec[j];
            if(dist[a] != INF && dist[b] > dist[a] + c) dist[b] = dist[a] + c;
        }
    }
    for(int j=1; j<=m; j++){
        int a = ea[j];
        int b = eb[j];
        int c = ec[j];
        if(dist[a] != INF && dist[b] > dist[a] + c){
            cout << "-1\n";
            return 0;
        }
    }
    for(int i=1; i<=n; i++){
        cout << (1^(dist[i] - dist[i-1])) << " ";
    }
    cout << "\n";
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 0 ms 332 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 332 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 131 ms 552 KB Output is correct
2 Correct 136 ms 564 KB Output is correct
3 Correct 134 ms 556 KB Output is correct
4 Correct 136 ms 568 KB Output is correct
5 Execution timed out 648 ms 564 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 131 ms 552 KB Output is correct
2 Correct 136 ms 564 KB Output is correct
3 Correct 134 ms 556 KB Output is correct
4 Correct 136 ms 568 KB Output is correct
5 Execution timed out 648 ms 564 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 0 ms 332 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 332 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 131 ms 552 KB Output is correct
12 Correct 136 ms 564 KB Output is correct
13 Correct 134 ms 556 KB Output is correct
14 Correct 136 ms 568 KB Output is correct
15 Execution timed out 648 ms 564 KB Time limit exceeded
16 Halted 0 ms 0 KB -