#include <stdio.h>
#include <iostream>
#include <vector>
#include <map>
using namespace std;
 
int peopleNum, N;
int d[510][510];
int inviteNum;
 
void floyd()
{
    for(int k = 2; k <= peopleNum; k++)
    {
        for(int j = 2; j <= peopleNum; j++)
        {
            if(d[1][k] + d[k][j] < d[1][j])
            {
                d[1][j] = d[1][k] + d[k][j];
            }
        }
    }
}
 
int main(void)
{
//    freopen("B5567_input.txt", "r", stdin);
    
    cin >> peopleNum >> N;
    
    for(int i = 1; i <= peopleNum; i++)
    {
        for(int j = 1; j <= peopleNum; j++)
        {
            d[i][j] = 199999999;
        }
    }
    
    for(int i = 1; i <= N; i++)
    {
        int from, to;
        cin >> from >> to;
        
        d[from][to] = 1;
        d[to][from] = 1;
    }
    
    floyd();
    
    for(int i = 2; i <= peopleNum; i++)
    {
        // 1번 상근이와의 거리가 2 이하인 동기의 수 체크 
        if(d[1][i] <= 2)
        {
            inviteNum++;
        }
    }
    
    cout << inviteNum;
    
    return 0;
}
cs

+ Recent posts