using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static IEnumerable<int> Range(int start, int end, int step = 1)
{
while (start <= end)
{
yield return start;
start += step;
}
}
static void Main(string[] args)
{
string str = "2,5,7-10,11,17-18";
var output = from n in str.Split(',')
let splitted = n.Split('-')
let start = int.Parse(splitted[0])
let end = int.Parse(splitted.Last())
select Range(start, end, 1);
foreach (var it in output)
foreach (var i in it)
Console.WriteLine(i);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkdsb2JhbGl6YXRpb247CnVzaW5nIFN5c3RlbS5MaW5xOwoKbmFtZXNwYWNlIENvbnNvbGVBcHBsaWNhdGlvbjEKewogICAgY2xhc3MgUHJvZ3JhbQogICAgewogICAgICAgIHN0YXRpYyBJRW51bWVyYWJsZTxpbnQ+IFJhbmdlKGludCBzdGFydCwgaW50IGVuZCwgaW50IHN0ZXAgPSAxKQogICAgICAgIHsKICAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDw9IGVuZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgeWllbGQgcmV0dXJuIHN0YXJ0OwogICAgICAgICAgICAgICAgc3RhcnQgKz0gc3RlcDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIHN0ciA9ICIyLDUsNy0xMCwxMSwxNy0xOCI7CgogICAgICAgICAgICB2YXIgb3V0cHV0ID0gZnJvbSBuIGluIHN0ci5TcGxpdCgnLCcpCiAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3BsaXR0ZWQgPSBuLlNwbGl0KCctJykKICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdGFydCA9IGludC5QYXJzZShzcGxpdHRlZFswXSkKICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbmQgPSBpbnQuUGFyc2Uoc3BsaXR0ZWQuTGFzdCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0IFJhbmdlKHN0YXJ0LCBlbmQsIDEpOwoKICAgICAgICAgICAgZm9yZWFjaCAodmFyIGl0IGluIG91dHB1dCkKICAgICAgICAgICAgICAgIGZvcmVhY2ggKHZhciBpIGluIGl0KSAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGkpOwogICAgICAgIH0KICAgIH0KfQo=