using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
public static void Main()
{
Console.WriteLine("Testing with 'xxx yy zzzz'");
foreach (var pair in SplitIntoPairsByWhitespace("xxx yy zzzz"))
{
Console.WriteLine(string.Join(", ", pair));
}
Console.WriteLine("Testing with 'a b c d'");
foreach (var pair in SplitIntoPairsByWhitespace("a b c d"))
{
Console.WriteLine(string.Join(", ", pair));
}
}
public static List<string[]> SplitIntoPairsByWhitespace(string text)
{
var chunks = text.Split();
var result = new List<string[]>();
for (var i=0; i<chunks.GetLength(0) - 1; i++)
{
var first = new List<string>();
for (var j=0; j <= i; j++)
first.Add(chunks[j]);
var second = new List<string>();
for (var j=i+1; j < chunks.GetLength(0); j++)
second.Add(chunks[j]);
result.Add(new[] {string.Join(" ", first), string.Join(" ", second)});
}
return result;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIlRlc3Rpbmcgd2l0aCAneHh4IHl5IHp6enonIik7CiAgICAJZm9yZWFjaCAodmFyIHBhaXIgaW4gU3BsaXRJbnRvUGFpcnNCeVdoaXRlc3BhY2UoInh4eCB5eSB6enp6IikpCgkJewogICAgCSAgICBDb25zb2xlLldyaXRlTGluZShzdHJpbmcuSm9pbigiLCAiLCBwYWlyKSk7CgkJfQoJCUNvbnNvbGUuV3JpdGVMaW5lKCJUZXN0aW5nIHdpdGggJ2EgYiBjIGQnIik7CiAgICAJZm9yZWFjaCAodmFyIHBhaXIgaW4gU3BsaXRJbnRvUGFpcnNCeVdoaXRlc3BhY2UoImEgYiBjIGQiKSkKICAgIAl7CiAgICAJICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Kb2luKCIsICIsIHBhaXIpKTsKCQl9Cgl9CglwdWJsaWMgc3RhdGljIExpc3Q8c3RyaW5nW10+IFNwbGl0SW50b1BhaXJzQnlXaGl0ZXNwYWNlKHN0cmluZyB0ZXh0KSAKCXsKCQl2YXIgY2h1bmtzID0gdGV4dC5TcGxpdCgpOwogICAgCXZhciByZXN1bHQgPSBuZXcgTGlzdDxzdHJpbmdbXT4oKTsKICAgICAgICBmb3IgKHZhciBpPTA7IGk8Y2h1bmtzLkdldExlbmd0aCgwKSAtIDE7IGkrKykKICAgICAgICB7CiAgICAgICAgCXZhciBmaXJzdCA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgICAgICAJZm9yICh2YXIgaj0wOyBqIDw9IGk7IGorKykKICAgICAgICAJICAgIGZpcnN0LkFkZChjaHVua3Nbal0pOwogICAgICAgIAl2YXIgc2Vjb25kID0gbmV3IExpc3Q8c3RyaW5nPigpOwogICAgICAgIAlmb3IgKHZhciBqPWkrMTsgaiA8IGNodW5rcy5HZXRMZW5ndGgoMCk7IGorKykKICAgICAgICAJICAgIHNlY29uZC5BZGQoY2h1bmtzW2pdKTsKICAgICAgICAJcmVzdWx0LkFkZChuZXdbXSB7c3RyaW5nLkpvaW4oIiAiLCBmaXJzdCksIHN0cmluZy5Kb2luKCIgIiwgc2Vjb25kKX0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwoJfQp9