메뉴 건너뛰기

Programing

BAEKJOON

2233

관리자 2019.12.21 11:46 조회 수 : 6

C++

#include <cstdio>

#include <cstdlib>

#include <vector>

using namespace std;

 

int parent[2010];

int check[2010];

int N,X_n,Y_n,X,Y;

char str[4010];

int arr[4010];

int main()

{

    scanf("%d %s",&N,str + 1);

    scanf("%d %d",&X_n,&Y_n);

    int idx=1,v=0;

    for(int i=1;i<=N*2;i++){

        if(str[i]=='0'){

            arr[i]=idx;

            parent[idx]=v;

            v = idx;

            idx++;

        }else{

            arr[i]=v;

            v = parent[v];

        }

    }

    X=arr[X_n];

    Y=arr[Y_n];

    v=X;

    while(v!=0){

        check[v]=1;

        v=parent[v];

    }

    v=Y;

    while(check[v]!=1){

        v=parent[v];

    }

    int lca =v;

 

    int a=0;

    for(int i=1;i<=N*2;i++){

        if(arr[i]==lca){

            if(a!=0){

                printf(" ");

            }

            printf("%d",i);

            a=1;

        }

    }

    return 0;

}

번호 제목 글쓴이 날짜 조회 수
공지 안내사항 관리자 2019.12.21 163
45 2468 관리자 2019.12.21 8
44 2458 관리자 2020.04.11 44
43 2457 관리자 2020.04.11 47
42 2454 관리자 2020.04.11 43
41 2450 관리자 2020.04.11 40
40 2339 관리자 2020.04.11 41
39 2307 관리자 2019.12.21 8
38 2250 관리자 2019.12.21 8
» 2233 관리자 2019.12.21 6
36 2170 관리자 2019.12.21 7
35 2132 관리자 2019.12.21 7
34 2096 관리자 2019.12.21 8
33 2042 관리자 2020.04.11 45
32 2003 관리자 2020.04.11 39
31 1991 관리자 2019.12.21 8
30 1967 관리자 2019.12.21 6
29 1966 관리자 2020.04.11 45
28 1946 관리자 2020.04.11 39
27 1874 관리자 2020.04.11 43
26 1839 관리자 2020.04.11 44
25 17611 관리자 2019.12.21 7
24 1753 관리자 2019.12.21 8
23 1742 관리자 2020.04.11 6
22 1720 관리자 2020.04.11 6
21 16210 관리자 2020.04.11 57
20 16201 관리자 2020.04.11 44
19 15971 관리자 2019.12.21 6
18 14865 관리자 2019.12.21 8
17 14503 관리자 2019.12.21 7
16 14502 관리자 2019.12.21 6
위로