YeJin's Footsteps

2458번: 키 순서 본문

Computer Science & Engineering/알고리즘

2458번: 키 순서

YeJinii 2021. 7. 19. 22:18

문제 링크

https://www.acmicpc.net/problem/2458

 

2458번: 키 순서

1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여

www.acmicpc.net

 

문제 풀이 코드

#include <iostream>
#include <vector>

using namespace std;

const int MN = 501;
bool floyd[MN][MN];

int main(void){

    int N, M; cin>>N>>M;

    for(int i=0; i<M; i++){
        int u,v; cin>>u>>v;
        floyd[u][v]=true;
    }

    for(int k=1; k<=N; k++){
        for(int i=1; i<=N; i++){
            for(int j=1; j<=N; j++){
                if(floyd[i][k]&&floyd[k][j]){
                    floyd[i][j]=true;
                }
                else continue;
            }
        }
    }

    vector <int> v(N+1);

    for(int i=1; i<=N; i++){
        for(int j=1; j<=N; j++){
            if(floyd[i][j]){
                v[i]+=1;
                v[j]+=1;
            }
        }
    }
    int cnt=0;
    for(int i=0; i<v.size(); i++){
        if(v[i]==N-1){
            cnt++;
        }
    }
    cout<<cnt;

    return 0;
}

'Computer Science & Engineering > 알고리즘' 카테고리의 다른 글

9370번: 미확인 도착지  (0) 2021.07.21
1238번: 파티  (0) 2021.07.20
11404번: 플로이드  (0) 2021.07.19
11403번: 경로 찾기  (0) 2021.07.19
멀쩡한 사각형  (0) 2021.07.17
Comments