В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
kustsireni
kustsireni
02.06.2022 11:08 •  Информатика

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, будут набирать не менее

Показать ответ
Ответ:
bananchik9
bananchik9
03.05.2023 09:53

// Язык Паскаль 

Program Massiv;

Uses Crt;

const n=10; // Нужно больше сам подставишь нужное число

 

 var a:array[1..n] of integer;

        i,c:integer;

begin

     clrscr;

     write('Введите элементы массива: ');

     c:=0;  

     for i:=1 to n do

        begin  

            readln(a[i]); 

 

            if (a[i] mod 2)=0 then c:=c+1; 

 

        end; 

 

writeln;

write('Исходный массив:');

 for i:=1 to n do write(a[i],'  ');

writeln('Количество чётных элементов: ',c); 

   readkey;

 

end. 

 

 

 

 

 

 

0,0(0 оценок)
Ответ:
aruka10511
aruka10511
26.10.2022 05:44
Там целая история... проще на калькуляторе, а если так то приравнивая к десятичной системе счисления, выбором остатков.. .
Вычитание двоичных чисел. Вычитать числа, будем также столбиком и общее правило тоже, что и для десятичных чисел, вычитание выполняется поразрядно и если в разряде не хватает единицы, то она занимается в старшем. Решим следующий пример:
1101
-
110
=
111

Первый разряд. 1 - 0 =1. Записываем 1.

Второй разряд 0 -1. Не хватает единицы. Занимаем её в старшем разряде. Единица из старшего разряда переходит в младший, как две единицы (потому что старший разряд представляется двойкой большей степени ) 2-1 =1. Записываем 1.

Третий разряд. Единицу этого разряда мы занимали, поэтому сейчас в разряде 0 и есть необходимость занять единицу старшего разряда. 2-1 =1. Записываем 1.

Проверим результат в десятичной системе

1101 - 110 = 13 - 6 = 7 (111) Верное равенство.

Еще один интересный выполнения вычитания связан с понятием дополнительного кода, который позволяет свести вычитание к сложению. Получается число в дополнительном коде исключительно просто, берём число, заменяем нули на единицы, единицы наоборот заменяем на нули и к младшему разряду добавляем единицу. Например, 10010, в дополнительном коде будет 011011.

Правило вычитания через дополнительный код утверждает, что вычитание можно заменить на сложение если вычитаемое заменить на число в дополнительном коде.

Пример: 34 - 22 = 12

Запишем этот пример в двоичном виде. 100010 - 10110 = 1100

Дополнительный код числа 10110 будет такой

01001 + 00001 = 01010. Тогда исходный пример можно заменить сложением так 100010 + 01010 = 101100 Далее необходимо отбросить одну единицу в старшем разряде. Если это сделать то, получим 001100. Отбросим незначащие нули и получим 1100, то есть пример решён правильно
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота