Algorithm/Softeer

우물 안 개구리

48965 2024. 3. 26. 11:56

풀이

처음에는 dfs문제인줄 알았지만 풀다보니 일반 구현문제였다. 먼저 연관성을 입력 받고 반복문을 돌려 각 사람들에 연결된 사람들의 무게를 비교하며, 현재 단계 사람의 무게보다 연결된 사람의 무게가 더 무거우면 flag를 설정하여 카운트하지 않았다.

 

#include<iostream>
#include<vector>

using namespace std;
int N,M;
int W[100001];
vector<int> vec[100001];
bool flag;
int main(int argc, char** argv)
{
  int u,v,ans=0;
  cin>>N>>M;
  for(int i=1;i<=N;i++){
    cin>>W[i];
  }
  for(int i=0;i<M;i++){
    cin>>u>>v;
    vec[u].push_back(v);
    vec[v].push_back(u);
  }
  for(int i=1;i<=N;i++){
    flag = false;
    for(int j=0;j<vec[i].size();j++){
      int next = vec[i][j];
      if(W[i]<=W[next]){
        flag = true;
        break;
      }
    }
    if(!flag) ans++;
  }
  cout<<ans;
  return 0;
}