[AtCoder] ABC 166 C – Peaks
問題
方針
展望台 \( i \) が隣接している全ての展望台の中で一番高いかどうかという情報を求めます。これは、全ての道について、\( H(A_i) \) と \( H(B_i) \) という値を比較すれば十分です。
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { int N, M; cin >> N >> M; int A[M], B[M], H[N]; for (int i = 0; i < N; i++) { cin >> H[i]; } for (int i = 0; i < M; i++) { cin >> A[i] >> B[i]; A[i]--; B[i]--; } bool flag[N]; fill(flag, flag + N, true); for (int i = 0; i < M; i++) { if (H[A[i]] == H[B[i]]) { flag[A[i]] = false; flag[B[i]] = false; } else if (H[A[i]] < H[B[i]]) { flag[A[i]] = false; } else { flag[B[i]] = false; } } int cnt = 0; for (bool b : flag) { if (b) cnt++; } cout << cnt << "\n"; return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません