CF288C Polo the Penguin and XOR operation

题目描述

小企鹅 Polo 喜欢排列。但他最喜欢的是对从 $0$ 到 $n$(包括 $n$)的整数的排列。 对于排列 $p=p_{0},p_{1},...,p_{n}$,Polo 定义它的美丽值为 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF288C/6024047c9c91de0156ffb9e5c8b6ac649d55fe1e.png)。 表达式 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF288C/a0b0fe9e9428287337c0277ea02ca07fcf0a01a7.png) 表示对数字 $x$ 和 $y$ 执行按位异或运算。在所有现代编程语言中,这个操作都存在,例如,在 C++ 和 Java 语言中用 “^” 表示,在 Pascal 语言中用 “xor” 表示。 请你帮他在所有 $0$ 到 $n$ 的整数的排列中找出美丽值最大的排列。

输入格式

一行一个正整数 $n$($1 \leq n \leq 10^{6}$)。

输出格式

第一行输出一个整数 $m$,表示最大可能的美丽值。 第二行输出 $0$ 到 $n$ 的任意一个排列,美丽值等于 $m$。 如果有多组满足要求的排列,可以输出任意一组。

说明/提示

由 ChatGPT 5 翻译