답안 #140455

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
140455 2019-08-03T07:10:19 Z evpipis One-Way Streets (CEOI17_oneway) C++11
0 / 100
5 ms 2808 KB
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second
#define mp make_pair
#define pb push_back
typedef pair<int, int> ii;

const int len = 1e5+5;
int out[len], num[len], low[len], par[len], sum[len], cnt;
ii edge[len];
vector<ii> adj[len];

void dfs(int u){
    num[u] = low[u] = ++cnt;
    for (int j = 0; j < adj[u].size(); j++){
        ii v = adj[u][j];
        if (!num[v.fi]){
            par[v.fi] = u;

            dfs(v.fi);

            if (low[v.fi] > num[u]){
                if (sum[v.fi] > 0)
                    out[v.se] = edge[v.se].fi==v.fi?1:-1;
                if (sum[v.fi] < 0)
                    out[v.se] = edge[v.se].fi==u?1:-1;
            }

            low[u] = min(low[u], low[v.fi]);
            sum[u] += sum[v.fi];
        }
        else if (v.fi != par[u]){
            low[u] = min(low[u], num[v.fi]);
        }
    }
}

int main(){
    int n, m, q;
    scanf("%d %d", &n, &m);
    for (int i = 0; i < m; i++){
        int a, b;
        scanf("%d %d", &a, &b);
        edge[i] = mp(a, b);
        adj[a].pb(mp(b, i));
        adj[b].pb(mp(a, i));
    }

    scanf("%d", &q);
    while (q--){
        int a, b;
        scanf("%d %d", &a, &b);
        sum[a]++;
        sum[b]--;
    }

    for (int i = 1; i <= n; i++)
        if (!num[i])
            dfs(i);

    for (int i = 0; i < m; i++){
        if (out[i] > 0)
            printf("R");
        else if (out[i] == 0)
            printf("B");
        else
            printf("L");
    }
    printf("\n");
    return 0;
}

Compilation message

oneway.cpp: In function 'void dfs(int)':
oneway.cpp:17:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int j = 0; j < adj[u].size(); j++){
                     ~~^~~~~~~~~~~~~~~
oneway.cpp: In function 'int main()':
oneway.cpp:42:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &n, &m);
     ~~~~~^~~~~~~~~~~~~~~~~
oneway.cpp:45:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d %d", &a, &b);
         ~~~~~^~~~~~~~~~~~~~~~~
oneway.cpp:51:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &q);
     ~~~~~^~~~~~~~~~
oneway.cpp:54:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d %d", &a, &b);
         ~~~~~^~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2680 KB Output is correct
3 Correct 4 ms 2808 KB Output is correct
4 Correct 5 ms 2808 KB Output is correct
5 Correct 5 ms 2808 KB Output is correct
6 Correct 4 ms 2680 KB Output is correct
7 Correct 5 ms 2808 KB Output is correct
8 Correct 4 ms 2808 KB Output is correct
9 Incorrect 5 ms 2680 KB Output isn't correct
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2680 KB Output is correct
3 Correct 4 ms 2808 KB Output is correct
4 Correct 5 ms 2808 KB Output is correct
5 Correct 5 ms 2808 KB Output is correct
6 Correct 4 ms 2680 KB Output is correct
7 Correct 5 ms 2808 KB Output is correct
8 Correct 4 ms 2808 KB Output is correct
9 Incorrect 5 ms 2680 KB Output isn't correct
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 2680 KB Output is correct
2 Correct 4 ms 2680 KB Output is correct
3 Correct 4 ms 2808 KB Output is correct
4 Correct 5 ms 2808 KB Output is correct
5 Correct 5 ms 2808 KB Output is correct
6 Correct 4 ms 2680 KB Output is correct
7 Correct 5 ms 2808 KB Output is correct
8 Correct 4 ms 2808 KB Output is correct
9 Incorrect 5 ms 2680 KB Output isn't correct
10 Halted 0 ms 0 KB -