Quiz
Submit
解法
- sortしてuniqueしてsize取ればOK、と思いきや
- ゴミがvectorの後端に残るのでeraseが必要
- uniqueがゴミの先端を返してくれるのでそれを用いてeraseする
sort(ALL(A));
auto it = unique(ALL(A));
A.erase(it, A.end());
p(A.size());
unique時の動作
VI A = {1,1,2,2,3,3,3}; unique(ALL(A)); debug(A);
// 出力 [A]: {1, 2, 3, 2, 3, 3, 3}
- 重複しないように前に寄せて、後端は残りがてきとうに並ぶわけではなく、どんな値が入っていても文句を言うなという印象(1が1つしかない)
- そもそもuniqueとるならset使えということでしょう
追記:2020/10/19
- 今ならsetに入れます^^
- AC https://atcoder.jp/contests/abc085/submissions/17517622
int main(){ // input ll N; cin>>N; set<ll> se; rep(i,N){ ll a;cin>>a; se.insert(a); } ll ans = se.size(); p(ans); return 0; }