Кінські команди
Обмеження: 2 сек., 512 МіБ
Зеник з Марічкою мають ферму з n жеребцями.
Фермери вишикували коней у шеренгу. У кожного коня є табличка з його улюбленим невід’ємним цілим числом. Улюблене число i-ого коня — ai.
Зеник з Марічкою хочуть поділити коней на команди для участі в Кінських Олімпійських іграх 2025. Фермери відведуть деяких коней із шеренги до стайні. Ці коні не братимуть участі в іграх.
Після цього в шерензі утворяться порожні місця, що розділяють коней, котрих не відвели до стайні, на проміжки. Кожен такий проміжок утворить одну команду.
Силою кінської команди є побітовий XOR улюблених чисел коней у команді, що записані в них на табличках.
Нагадаємо, що XOR позначає операцiю побiтового виключного АБО. Наприклад, 13 XOR 6=11, адже в двiйковому записi 1310=11012, а 610=01102, тому їхній XOR дорівнює 10112=1110.
Знайдіть максимальну можливу суму сил кінських команд.
Якщо ви хочете розв’язати задачу на повний бал, також знайдіть, яких коней потрібно відвести до стайні, щоб досягнути такої суми.
Вхідні дані
У першому рядку задано ціле число x, яке дорівнює 0 або 1. Якщо x=0, вам потрібно знайти лише максимальну суму сил кінських команд. Якщо x=1, крім цього ви ще повинні знайти, яких коней потрібно відвести до стайні.
У другому рядку задано ціле число n — кількість коней у шерензі.
У третьому рядку записано n цілих чисел ai — улюблені числа коней у порядку шеренги.
Вихідні дані
У першому рядку виведіть одне ціле число — максимальну суму сил кінських команд. Якщо x=0, ви не повинні більше нічого виводити — інакше ваша відповідь не буде зарахована.
Якщо x=1, у другому рядку
виведіть n символів 0
і 1
— 0
позначає, що відповідний кінь
залишиться в шерензі, а 1
позначає, що відповідного коня
відведуть до стайні.
Обмеження
0≤x≤1,
1≤n≤2⋅105,
0≤ai≤109.
Оцінювання складається з таких блоків:
по 1 балу за кожен приклад з умови,
3 бали: n=1, x=0,
4 бали: n≤2, x=0,
10 балів: n≤3, x=0,
10 балів: n≤15, x=0,
17 балів: n≤2⋅103, x=0,
22 бали: ai≤63, x=0,
32 бали: без додаткових обмежень.
Бали за блок ви отримаєте, тільки якщо ваша програма пройде всі тести з блоку.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
1 7 4 8 12 7 3 9 4 | 32 0010100 |
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
0 4 1 3 5 7 | 10 |
Примітки
У першому прикладі потрібно відвести до стайні третього та п’ятого коня. Тоді утворяться такі кінські команди: (4,8), (7) і (9,4).
Сила команди (4,8) дорівнює 4 XOR 8=12.
Сила команди (7) дорівнює 7.
Сила команди (9,4) дорівнює 9 XOR 4=13.
Сума сил усіх команд дорівнює 12+7+13=32.