Поделитесь своими знаниями, ответьте на вопрос:
E. Реформа ЕГЭ Ограничение времени 1.5 секунд Ограничение памяти 256Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt В министерстве образования Берляндии решили окончательно запутать берляндских школьников и ввели реформу Берляндского Единого Государственного Экзамена. Теперь на экзамене каждый школьник получит n задач, каждая из которых стоит ai . Но при этом итоговый выставляется по следующим правилам: Если школьник решил одну задачу, то итоговый равен за эту задачу. Если школьник решил больше одной задачи, то проверяющие выбирают две решенные задачи i и j такие, что максимальный. Выражение означает применение побитовой операции xor к числам x и y. Данная операция существует во всех современных языках программирования, например, в языках C++, Java и Python она обозначена как «», в Pascal – как «xor». Выпускник Миша хочет набрать самый большой на экзамене, который можно получить для данного набора задач. Миша умный и решит любую задачу, которые Вы для него выберете, но также Миша ленивый, поэтому он хочет решить как можно меньше задач, при этом все равно получив самый большой . Скажите Мише – какой максимальный он сможет набрать на экзамене. Формат ввода В первой строке задано число n (1 ≤ n ≤ 200 000) – количество задач. Во второй строке через пробел заданы целые числа (0 ≤ ai ≤ 109) – стоимости задач. Формат вывода Выведите одно целое число – максимально возможный , который сможет набрать Миша. Пример 1 Ввод Вывод 4 2 2 4 8 12 Пример 2 Ввод Вывод 5 9 7 3 5 2 14 Пример 3 Ввод Вывод 7 15 4 5 5 2 6 7 15 Примечания В первом примере Миша должен решить третью и четвертую задачи. Их xor будет равен . В третьем примере Миша должен решить только первую задачу, тогда его будет равен 15. Решения, правильно работающие для n ≤ 10, ai ≤ 100, будут набирать не менее Решения, правильно работающие для n ≤ 200 000, ai ≤ 109, где для всех ai верно, что они – степени двойки, будут набирать не менее Решения, правильно работающие для n ≤ 2000, ai ≤ 109, будут набирать не менее Решения, правильно работающие для n ≤ 20 000, ai ≤ 109, будут набирать не менее
VAR
a,b,c: String;
i, s: LongInt;
Procedure Sum(var a, b: String);
Var i, p, c1,c2: LongInt;
Begin
while (Length(a) < Length(b)) do a := '0' + a;
while (Length(b) < Length(a)) do b := '0' + b;
p := 0;
for i := Length(a) downto 1 do begin
c1 := Ord(a[i]) - 48;
c2 := Ord(b[i]) - 48;
a[i] := Chr(48 + (c1 + c2 + p)mod 10);
p := (c1 + c2 + p) div 10;
end;
if (p > 0) then a := Chr(p + 48) + a;
End;
BEGIN
a:= '2013';
b:= '2014';
for i := 3 to 2014 do begin
Sum(a, b);
c := a; a := b; b := c;
end;
Writeln(c);
s := 0;
for i := 1 to Length(c) do
s := s + Ord(c[i]) - 48;
Writeln('Сумма цифр числа = ', s);
END.