Решение, быть может и не тривиальное, но за 5 баллов ломать голову, как это сделать "по-школьному" мне не захотелось. Да и не требовалось по условию... даже язык программирования не был указан.
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
var s:=ReadlnString('>');
var m:=s.Matches('(\S+)').Select(x->(x.Index+1,x.Value.Length));
// получили последовательность элементов вида <позиция><длина>,
// отражающих положение слов в строке.
var n:=m.Count; // количество слов
if n.IsEven then Dec(n);
while n>0 do begin
var e:=m.ElementAt(n-1);
Delete(s,e.Item1,e.Item2);
Dec(n,2)
end;
Writeln(s)
end.
Тестовое решение
> Карл у Клары украл кораллы Клара у Карла украла кларнет
у украл Клара Карла кларнет