1654. Cipher Message
Time limit: 1.0 second
Memory limit: 64 MB
Memory limit: 64 MB
Müller tried to catch Stierlitz red-handed many times, but always failed because Stierlitz could ever find some excuse. Once Stierlitz was looking through his email messages. At that moment, Müller entered secretly and watched a meaningless sequence of symbols appear on the screen. “A cipher message,” Müller thought. “UTF-8,” Stierlitz thought.
It is known that Stierlitz ciphers messages by the following method.
- He deletes all spaces and punctuation marks.
- He replaces all successive identical letters by one such letter.
- He inserts two identical letters at an arbitrary place many times.
Try to restore a message as it was after the second step. For that, remove from the message all pairs of identical letters inserted at the third step.
Input
The only input line contains a message ciphered by Stierlitz. The message consists of lowercase English letters and its length is at most 200000.
Output
Output the restored message.
Sample
input | output |
---|---|
wwstdaadierfflitzzz | stierlitz |
Problem Author: Vladimir Yakovlev (idea by Alexander Klepinin)
Problem Source: NEERC 2008, Eastern subregion quarterfinals
Problem Source: NEERC 2008, Eastern subregion quarterfinals
/**
*
* 栈
*
*/
#include <iostream>
#include <string>
using namespace std;
string str,src;
int main()
{
int i;
cin>>src;
for(i=0;i<src.size();i++)
{
str+=src[i];
if(str.size()>=2&&str[str.size()-2]==str[str.size()-1])
str.erase(str.end()-2,str.end());
}
cout<<str<<endl;
return 0;
}