Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -module(solution).
- -export([main/0]).
- pairs_is_equal([X,Y],[P,Q]) ->
- P==X orelse Q==X orelse P == Y orelse Q==Y.
- main() ->
- {ok,[Count]}=io:fread("","~d"),
- {ok,[CountPairs]}=io:fread("","~d"),
- Set=sets:new(),
- main(CountPairs,Set).
- main(CountPairs,Set) when CountPairs ==0 ->
- parse_set(sets:new(),Set,sets:to_list(Set));
- main(CountPairs,Set) when CountPairs /=0 ->
- {ok,[P,Q]}=io:fread("","~d~d"),
- NewSet=sets:add_element([P,Q],Set),
- main(CountPairs-1,NewSet).
- parse_set(Set,Sorted,[]) ->
- io:format("End~p~n",[sets:to_list(Set)]);
- parse_set(New,Set,[H|Tail]) ->
- PromData=sets:filter(fun(Elem) -> pairs_is_equal(Elem,H) end,Set),
- Data=parse_subset(sets:to_list(PromData),Set),
- io:format("Data~p~n",[sets:to_list(Data)]),
- case sets:size(Data) > 0 of
- true -> SortedSet=sets:subtract(Set,Data),
- NewSet=sets:add_element(Data,New),
- parse_set(NewSet,SortedSet,Tail);
- false -> parse_set(New,Set,Tail)
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement