#include <string>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <vector>
#include <iostream>
using namespace std;
class line {
string data;
public:
operator string() const { return data; }
bool operator==(const line& ln) const { return data == ln.data; }
friend istream& operator>>(istream& is, line& ln) {
return getline(is, ln.data);
}
};
string stringCleaner(const string &str)
{
istringstream tempStr(str);
ostringstream cleanLine;
unique_copy(istream_iterator<line>(tempStr),
istream_iterator<line>(),
ostream_iterator<string>(cleanLine, "\n"));
return cleanLine.str();
}
int main()
{
std::cout << stringCleaner("http://www aaa com\nhttp://www bbb com\n"
"http://www bbb com\nhttp://www ccc com\n"
"http://www ddd com\nhttp://www ddd com\n"
"http://www ddd com\nhttp://www ddd com\n"
"http://www eee com");
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBsaW5lIHsKICAgIHN0cmluZyBkYXRhOwogcHVibGljOgogICAgb3BlcmF0b3Igc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gZGF0YTsgfQogICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGxpbmUmIGxuKSBjb25zdCB7IHJldHVybiBkYXRhID09IGxuLmRhdGE7IH0KICAgIGZyaWVuZCBpc3RyZWFtJiBvcGVyYXRvcj4+KGlzdHJlYW0mIGlzLCBsaW5lJiBsbikgewogICAgICAgIHJldHVybiBnZXRsaW5lKGlzLCBsbi5kYXRhKTsKICAgIH0KfTsKCnN0cmluZyBzdHJpbmdDbGVhbmVyKGNvbnN0IHN0cmluZyAmc3RyKQp7CiAgICBpc3RyaW5nc3RyZWFtIHRlbXBTdHIoc3RyKTsKICAgIG9zdHJpbmdzdHJlYW0gY2xlYW5MaW5lOwogICAgdW5pcXVlX2NvcHkoaXN0cmVhbV9pdGVyYXRvcjxsaW5lPih0ZW1wU3RyKSwKICAgICAgICAgICAgICAgIGlzdHJlYW1faXRlcmF0b3I8bGluZT4oKSwKICAgICAgICAgICAgICAgIG9zdHJlYW1faXRlcmF0b3I8c3RyaW5nPihjbGVhbkxpbmUsICJcbiIpKTsKICAgIHJldHVybiBjbGVhbkxpbmUuc3RyKCk7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8IHN0cmluZ0NsZWFuZXIoImh0dHA6Ly93d3cgYWFhIGNvbVxuaHR0cDovL3d3dyBiYmIgY29tXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dyBiYmIgY29tXG5odHRwOi8vd3d3IGNjYyBjb21cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3IGRkZCBjb21cbmh0dHA6Ly93d3cgZGRkIGNvbVxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cgZGRkIGNvbVxuaHR0cDovL3d3dyBkZGQgY29tXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dyBlZWUgY29tIik7Cn0K