Решать на pascal abc переставить элементы массива так, чтобы сначала располагались нули, затем положительные элементы в порядке возрастания, затем отрицательные элементы в порядке убывания.
// PascalABC.NET 3.0, сборка 1128 begin var n:=ReadInteger('n='); var a:=ArrRandom(n,-5,5).Println(','); (a.Where(x->x=0)+a.Where(x->x>0).OrderBy(x->x)+ a.Where(x->x<0).OrderByDescending(x->x)).Println(',') end.