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, будут набирать не менее
#include <iostream>
using std::cout;
using std::endl;
int main()
{
const int arraySize = 20;
float cheapest;
float a[arraySize] = { 14.60, 15.50, 53.20, 44.80, 48.60, 12.65, 21.20, 32.50, 51.20, 17.50, 12.65, 14.60, 15.50, 53.20, 44.80, 48.60, 21.20, 32.50, 51.20, 17.50 };
cheapest = a[0];
for(int i = 1; i < arraySize; i++)
{
if(cheapest > a[i])
{
cheapest = a[i];
}
}
cout << "Cheapest candy cost " << cheapest << "grn" << endl;
return 0;
}
180 Кбайт разбиты на 40 дорожек по 9 секторов, то есть на
40*9=360 частей (кластеров). 1 кластер занимает 180/360=0,5 Кбайта.
Текст занимает 10 полных дорожек, то есть 10*9=90 кластеров.
Объем текста равен 90*0,5 = 45 Кбайт.
Текст записан с символьного алфавита, то есть на каждый символ уходит 4 бита = 0,5 байта, потому что 16 = 2^4.
Количество символов в тексте равно 45*1024/2 = 45*512 = 23040.
Если же ошибки нет, и файл занимает 10 секторов, то это 1 дорожка и еще 1 сектор. Тогда объем файла 5 Кбайт = 5*1024/2=5*512=2560 символов