AtCoder Beginner Contest 022 B - Bumble Bee
問題
N個の花があります。i番目に訪れた花はです。i>jかつである花の個数を求めます。
制約
考えたこと
1番目から順番に、花の種類であるの値を補完するとともに、すでに保管しているかを調べます。
コード
#define _GIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) #define all(v) v.begin(), v.end() using namespace std; using ll = long long; int main(void) { int N; cin >> N; vector<int> A(N); rep(i, N) cin >> A[i]; unordered_map<int, int> mp; int ans = 0; for (int i = 0; i < N; ++i) { auto itr = mp.find(A[i]); if (itr != mp.end()) { ++ans; } mp.insert(make_pair(A[i], 1)); } cout << ans << endl; return 0; }
解説を読んで
花の種類数という考え方の方が、よく考えられている気がします。