#include <utility>
#include <vector>
#include <map>
#include <iostream>

std::vector< std::pair<int,int> > remove_pairs_with_the_same_destination(
                        const std::vector< std::pair<int,int> >& srce_dest_pairs )
{
    using pair = std::pair<int,int> ;

    static const auto compare_dest = [] ( const pair& a, const pair& b )
                                       { return a.second < b.second ; } ;
    std::map< pair, int, decltype(compare_dest) > counts(compare_dest) ;
    for( const pair& p : srce_dest_pairs ) ++counts[p] ;

    std::vector<pair> result ;
    for( const auto& p : counts ) if( p.second == 1 ) result.push_back(p.first) ;

    return result ;
}

int main()
{
    std::vector< std::pair<int,int> > seq =
    { {0,2}, {1,2}, {3,4}, {5,6}, {0,1}, {7,2}, {0,3}, {8,6}, {9,2} } ;

    for( const auto& p : remove_pairs_with_the_same_destination(seq) )
        std::cout << p.first << ',' << p.second << '\n' ;
}
