답안 #826261

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
826261 2023-08-15T11:39:38 Z vnm06 장난감 기차 (IOI17_train) C++14
11 / 100
198 ms 1540 KB
#include<bits/stdc++.h>
#include "train.h"

using namespace std;

int n, m;
bool isC[5005], used[5005];
bool badv[5005];
vector<int> gr[5005], rev_gr[5005];

void dfs(int v)
{
    int brs=gr[v].size();
    for(int i=0; i<brs; i++)
    {
        int nv=gr[v][i];
        if(used[nv]) continue;
        used[nv]=1;
        dfs(nv);
    }
}

vector<int> ans;

void dfs2(int v)
{
    ans[v-1]=1;
    int brs=rev_gr[v].size();
    for(int i=0; i<brs; i++)
    {
        int nv=rev_gr[v][i];
        if(ans[nv-1]) continue;
        dfs2(nv);
    }
}

std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v)
{
    if(r[0]==1)
    {
    n=a.size();
    ans.resize(n);
    for(int i=0; i<n; i++) ans[i]=0;
    m=u.size();
    for(int i=0; i<n; i++)
    {
        if(r[i]) {isC[i+1]=1; badv[i+1]=1;}
    }
    for(int i=0; i<m; i++)
    {
        gr[u[i]+1].push_back(v[i]+1);
        rev_gr[v[i]+1].push_back(u[i]+1);
    }
    for(int t=1; t<=n; t++)
    {
    for(int i=1; i<=n; i++)
    {
        if(!badv[i])
        {
            bool fl0=0;
            int brs=gr[i].size();
            for(int j=0; j<brs; j++) if(!badv[gr[i][j]]) fl0=1;
            if(!fl0) badv[i]=1;
        }
    }
    }
    for(int k=1; k<=n; k++)
    {
        if(!badv[k]) dfs2(k);
    }
    for(int k=0; k<n; k++) ans[k]=1-ans[k];
    }
    else
    {

    n=a.size();
    ans.resize(n);
    for(int i=0; i<n; i++) ans[i]=0;
    m=u.size();
    for(int i=0; i<n; i++) if(r[i]) isC[i+1]=1;
    for(int i=0; i<m; i++)
    {
        gr[u[i]+1].push_back(v[i]+1);
        rev_gr[v[i]+1].push_back(u[i]+1);
    }
    for(int i=1; i<=n; i++)
    {
        if(isC[i])
        {
            dfs(i);
            if(!used[i]) isC[i]=0;
            memset(used, 0, sizeof(used));
        }
    }
    for(int i=1; i<=n; i++)
    {
        if(isC[i]) dfs2(i);
    }
    }
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 32 ms 980 KB 3rd lines differ - on the 14th token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 468 KB 3rd lines differ - on the 2nd token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 140 ms 1420 KB Output is correct
2 Correct 147 ms 1404 KB Output is correct
3 Correct 126 ms 1392 KB Output is correct
4 Correct 198 ms 1512 KB Output is correct
5 Correct 30 ms 1364 KB Output is correct
6 Correct 50 ms 1364 KB Output is correct
7 Correct 148 ms 1364 KB Output is correct
8 Correct 5 ms 1364 KB Output is correct
9 Correct 7 ms 1380 KB Output is correct
10 Correct 7 ms 1364 KB Output is correct
11 Correct 5 ms 1236 KB Output is correct
12 Correct 5 ms 1224 KB Output is correct
13 Correct 6 ms 1492 KB Output is correct
14 Correct 6 ms 1492 KB Output is correct
15 Correct 6 ms 1540 KB Output is correct
16 Correct 6 ms 1492 KB Output is correct
17 Correct 6 ms 1492 KB Output is correct
18 Correct 51 ms 1096 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 1128 KB Output is correct
2 Incorrect 5 ms 1304 KB 3rd lines differ - on the 3rd token, expected: '0', found: '1'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 6 ms 1492 KB 3rd lines differ - on the 2nd token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 32 ms 980 KB 3rd lines differ - on the 14th token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -