using System;
using System.Linq;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
static IEnumerable<IEnumerable<int>> SelectNElements(int[] arr, int n)
{
IEnumerable<IEnumerable<int>> result = arr.Select(x => new List<int>() { x });
for (int i = 1; i < n; i++)
result = result.SelectMany(x => arr.Where(y => y > x.Max()), (x, y) => x.Concat(new int[] { y }));
return result;
}
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4 };
for (int i = 1; i <= arr.Length; i++)
{
var result = SelectNElements(arr, i);
foreach (var item in result)
{
foreach (int x in item)
Console.Write(x + " ");
Console.WriteLine();
}
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpuYW1lc3BhY2UgQ29uc29sZUFwcDEKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyBJRW51bWVyYWJsZTxJRW51bWVyYWJsZTxpbnQ+PiBTZWxlY3RORWxlbWVudHMoaW50W10gYXJyLCBpbnQgbikKICAgICAgICB7CiAgICAgICAgICAgIElFbnVtZXJhYmxlPElFbnVtZXJhYmxlPGludD4+IHJlc3VsdCA9IGFyci5TZWxlY3QoeCA9PiBuZXcgTGlzdDxpbnQ+KCkgeyB4IH0pOwogICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykKICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5TZWxlY3RNYW55KHggPT4gYXJyLldoZXJlKHkgPT4geSA+IHguTWF4KCkpLCAoeCwgeSkgPT4geC5Db25jYXQobmV3IGludFtdIHsgeSB9KSk7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIGludFtdIGFyciA9IHsgMSwgMiwgMywgNCB9OwogICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBhcnIuTGVuZ3RoOyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBTZWxlY3RORWxlbWVudHMoYXJyLCBpKTsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpdGVtIGluIHJlc3VsdCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIChpbnQgeCBpbiBpdGVtKQogICAgICAgICAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlKHggKyAiICIpOwogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K