2458번: 키 순서
1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여
www.acmicpc.net
[ 백준 2458번 키순서 소스 코드 ]
[ 한국정보올림피아드 지역본선 2011년 초등부 키순서 소스 코드 ]
#include <cstdio>
#include <queue>
using namespace std;
int main()
{
int n, m, i, j, ka[501][501]={0,}, x, y, a[501];
int check[501]={0,};
queue <int> q;
scanf("%d %d", &n, &m);
for(i=0;i<m;i++)
{
scanf("%d %d", &x, &y);
ka[x][y] = 1;
ka[y][x] = 2;
}
for(i=1;i<=n;i++)
{
q.push(i);
check[j] = 1;
while(!q.empty())
{
x = q.front();
q.pop();
for(j=1;j<=n;j++)
{
if(ka[x][j]==1 && check[j]==0)
{
a[i]++;
check[j] = 1;
q.push(j);
}
}
}
for(j=1;j<=n;j++)
check[j] = 0;
}
for(i=1;i<=n;i++)
{
q.push(i);
check[j] = 1;
while(!q.empty())
{
x = q.front();
q.pop();
for(j=1;j<=n;j++)
{
if(ka[x][j]==2 && check[j]==0)
{
a[i]++;
check[j] = 1;
q.push(j);
}
}
}
for(j=1;j<=n;j++)
check[j] = 0;
}
x = 0;
for(i=1;i<=n;i++)
{
if(a[i]==n-1)
x++;
}
printf("%d", x);
return 0;
}
'백준 문제풀이' 카테고리의 다른 글
백준 2617번 - 구슬찾기 소스 코드 (0) | 2021.06.04 |
---|---|
백준 1406번 - 에디터 소스 코드 (0) | 2021.05.02 |
백준 2461번 - 대표선수 소스코드 (0) | 2021.05.02 |
백준 2456번 - 나는 학급회장이다 (0) | 2021.05.01 |
백준 2505 - 두 번 뒤집기 (0) | 2021.05.01 |