#include <iostream>
#include <utility>
#include <vector>
#include <algorithm>
int main ()
{
// for non-predicate version of std::sort, point needs an operator <
// for non-predicate version of std::unique, point needs an operator ==
// for brevity, using a std::pair<> which has both
using point = std::pair<int,int> ;
std::vector< point > my_points { {2,4}, {5,4}, {2,4}, {0,1}, {5,4}, } ;
std::sort( my_points.begin(), my_points.end() ) ;
my_points.erase( std::unique( my_points.begin(), my_points.end() ), my_points.end() ) ;
for( point p : my_points ) std::cout << '(' << p.first << ',' << p.second << ") " ;
std::cout << '\n' ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCmludCBtYWluICgpCnsKICAgIC8vIGZvciBub24tcHJlZGljYXRlIHZlcnNpb24gb2Ygc3RkOjpzb3J0LCBwb2ludCBuZWVkcyBhbiBvcGVyYXRvciA8CiAgICAvLyBmb3Igbm9uLXByZWRpY2F0ZSB2ZXJzaW9uIG9mIHN0ZDo6dW5pcXVlLCBwb2ludCBuZWVkcyBhbiBvcGVyYXRvciA9PQogICAgLy8gZm9yIGJyZXZpdHksIHVzaW5nIGEgc3RkOjpwYWlyPD4gd2hpY2ggaGFzIGJvdGgKICAgIHVzaW5nIHBvaW50ID0gc3RkOjpwYWlyPGludCxpbnQ+IDsKCiAgICBzdGQ6OnZlY3RvcjwgcG9pbnQgPiBteV9wb2ludHMgeyB7Miw0fSwgezUsNH0sIHsyLDR9LCB7MCwxfSwgezUsNH0sIH0gOwogICAgc3RkOjpzb3J0KCBteV9wb2ludHMuYmVnaW4oKSwgbXlfcG9pbnRzLmVuZCgpICkgOwogICAgbXlfcG9pbnRzLmVyYXNlKCBzdGQ6OnVuaXF1ZSggbXlfcG9pbnRzLmJlZ2luKCksIG15X3BvaW50cy5lbmQoKSApLCBteV9wb2ludHMuZW5kKCkgKSA7CgogICAgZm9yKCBwb2ludCBwIDogIG15X3BvaW50cyApIHN0ZDo6Y291dCA8PCAnKCcgPDwgcC5maXJzdCA8PCAnLCcgPDwgcC5zZWNvbmQgPDwgIikgIiA7CiAgICBzdGQ6OmNvdXQgPDwgJ1xuJyA7Cn0K