fork download
  1. using System;
  2. using System.Linq;
  3.  
  4. public class Test
  5. {
  6. static void Main(string[] args)
  7. {
  8. var data = new string[]
  9. {
  10. "17-24 36-41 53-58 138-143 155",
  11. "13-16 32 49-52 66-69",
  12. "13-16 32-35 49-52 66 83 100-103"
  13. };
  14.  
  15. split = 0;
  16. parse = 0;
  17. var x = data.Select(e => e.Split().Select(s => Array.ConvertAll(MySplit(s, '-'), MyParse)).SelectMany(d => Enumerable.Range(d.First(), d.Last() - d.First() + 1)));
  18. Console.WriteLine(string.Join("\n", x.Select(y => string.Join(" ", y))));
  19. Console.WriteLine(split);
  20. Console.WriteLine(parse);
  21.  
  22. split = 0;
  23. parse = 0;
  24. x = data.Select(e => e.Split().Select(s => MySplit(s, '-').Select(MyParse)).SelectMany(d => Enumerable.Range(d.First(), d.Last() - d.First() + 1)));
  25. Console.WriteLine(string.Join("\n", x.Select(y => string.Join(" ", y))));
  26. Console.WriteLine(split);
  27. Console.WriteLine(parse);
  28.  
  29. split = 0;
  30. parse = 0;
  31. x = data.Select(e => e.Split().Select(s => MySplit(s, '-').Select(MyParse).ToList()).SelectMany(d => Enumerable.Range(d.First(), d.Last() - d.First() + 1)));
  32. Console.WriteLine(string.Join("\n", x.Select(y => string.Join(" ", y))));
  33. Console.WriteLine(split);
  34. Console.WriteLine(parse);
  35. }
  36.  
  37. static int split = 0;
  38. static int parse = 0;
  39.  
  40. static string[] MySplit(string s, params char[] separator)
  41. {
  42. split++;
  43. return s.Split(separator);
  44. }
  45.  
  46. static int MyParse(string s)
  47. {
  48. parse++;
  49. return int.Parse(s);
  50. }
  51. }
Success #stdin #stdout 0.04s 16388KB
stdin
Standard input is empty
stdout
17 18 19 20 21 22 23 24 36 37 38 39 40 41 53 54 55 56 57 58 138 139 140 141 142 143 155
13 14 15 16 32 49 50 51 52 66 67 68 69
13 14 15 16 32 33 34 35 49 50 51 52 66 83 100 101 102 103
15
26
17 18 19 20 21 22 23 24 36 37 38 39 40 41 53 54 55 56 57 58 138 139 140 141 142 143 155
13 14 15 16 32 49 50 51 52 66 67 68 69
13 14 15 16 32 33 34 35 49 50 51 52 66 83 100 101 102 103
15
56
17 18 19 20 21 22 23 24 36 37 38 39 40 41 53 54 55 56 57 58 138 139 140 141 142 143 155
13 14 15 16 32 49 50 51 52 66 67 68 69
13 14 15 16 32 33 34 35 49 50 51 52 66 83 100 101 102 103
15
26