:- use_module(contestlib,[sublist/2]).
:- use_module(library(lists),[reverse/2, last/2]).

ld(List,LongestDecrSub) :-
	setof(Len-DecrSub,decreasing_sublist(List,Len,DecrSub),AllDecrSubs),
	last(_-LongestDecrSub,AllDecrSubs).

decreasing_sublist(List,Len,DecrSub) :-
	sublist(List,DecrSub),
	sort(DecrSub,DecrSubSorted),
	reverse(DecrSubSorted,DecrSub),
	length(DecrSub,Len).