POJ 3916 - Duplicate Removal

http://poj.org/problem?id=3916

概要

N 個の要素からなる数列が与えられるので,それの隣接している重複した要素を取り除いた後の数列を答える.

制約

解法

unique() するだけ.

 1 #include <iostream>
 2 #include <vector>
 3 #include <iterator>
 4 #include <algorithm>
 5 using namespace std;
 6 
 7 int main()
 8 {
 9   int N;
10   while (cin >> N && N != 0) {
11     vector<int> v(N);
12     for (int i = 0; i < N; i++) {
13       cin >> v[i];
14     }
15     const vector<int>::iterator last = unique(v.begin(), v.end());
16     copy(v.begin(), last, ostream_iterator<int>(cout, " "));
17     cout << "$" << endl;
18   }
19   return 0;
20 }
poj/3916.cc