답안 #826260

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
826260 2023-08-15T11:39:11 Z vnm06 장난감 기차 (IOI17_train) C++14
0 / 100
568 ms 1536 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]==0)
    {
    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 71 ms 1280 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 468 KB 3rd lines differ - on the 8th token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 1492 KB Output is correct
2 Correct 17 ms 1512 KB Output is correct
3 Correct 37 ms 1536 KB Output is correct
4 Incorrect 177 ms 1384 KB 3rd lines differ - on the 1st token, expected: '1', found: '0'
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 568 ms 1300 KB 3rd lines differ - on the 696th token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 230 ms 1380 KB 3rd lines differ - on the 1st token, expected: '1', found: '0'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 71 ms 1280 KB 3rd lines differ - on the 1st token, expected: '0', found: '1'
2 Halted 0 ms 0 KB -