shghdwo123   4년 전

vector 써서는 코드를 짰는데, if else만으로도 풀릴것같은 이문제가 계속틀렸다고나오네요.

반례가 뭐일까요? 질문검색과 ex 로는 잘돌아가네요 ㅠ

#include <stdio.h>

int arr[100005];
int que[100005][2];
int main() {
    arr[1]=1;
    int n;
    int count=-1;
    scanf("%d",&n);

    for(int i=0; i<n; i++)
    {
        int num1, num2;
        scanf("%d %d",&num1,&num2);
        
        if(arr[num1]>0)
            arr[num2]=num1;
        else if(arr[num2]>0)
            arr[num1]=num2;
        else if(arr[num1]==0 && arr[num2]==0)
         {
             count++;
             que[count][0]=num1; 
             que[count][1]=num2; 
         }
    }
    while(count >= 0)
        {
            int x = que[count][0];
            int y = que[count][1];
        if(arr[x]>0)
            arr[y]=x;
        else if(arr[y]>0)
            arr[x]=y;

        count--;
        }
    for(int i=2; i<=n; i++)
        printf("%d\n",arr[i]);
    return 0;
}

댓글을 작성하려면 로그인해야 합니다.