POJ 3916:Duplicate Removal 将相近的重复元素删除
Duplicate Removal
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 1745 | Accepted: 1213 |
Description
The company Al's Chocolate Mangos has a web site where visitors can guess how many chocolate covered mangos are in a virtual jar. Visitors type in a guess between 1 and 99 and then click on a "Submit" button. Unfortunately, the response time from the server
is often long, and visitors get impatient and click "Submit" several times in a row. This generates many duplicate requests.
Your task is to write a program to assist the staff at ACM in filtering out these duplicate requests.
Your task is to write a program to assist the staff at ACM in filtering out these duplicate requests.
Input
The input consists of a series of lines, one for each web session. The first integer on a line is N, 0 < N ≤ 25, which is the number of guesses on this line. These guesses are all between 1 and 99, inclusive. The value N = 0 indicates the end of all the input.
Output
For each input data set, output a single line with the guesses in the original order, but with consecutive duplicates removed. Conclude each output line with the dollar sign character '$'. Note that there is a single space between the last integer and the dollar
sign.
Sample Input
5 1 22 22 22 3 4 98 76 20 76 6 19 19 35 86 86 86 1 7 0
Sample Output
1 22 3 $ 98 76 20 76 $ 19 35 86 $ 7 $
题意是将相近的重复元素删除。
代码:
#include <iostream> #include <algorithm> #include <cmath> #include <vector> #include <string> #include <cstring> #include <set> #pragma warning(disable:4996) using namespace std; vector<int>a; int num; int main() { int i,temp; while(cin>>num) { if(num==0) break; a.clear(); for(i=1;i<=num;i++) { cin>>temp; a.push_back(temp); } vector<int>::iterator iter =unique(a.begin(),a.end()); a.erase(iter,a.end()); for(i=0;i<a.size();i++) { cout<<a[i]<<" "; } cout<<"$"<<endl; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。