【NOIP2017提高A组模拟9.12】Arrays and Palindrome[SPJ]

题目

Description

Input

Output

Sample Input

1

6

Sample Output

6

2

1 5

Data Constraint

题解

题意

em……语言组织能力不行,看题吧

题解

结论题

可以证得\(A\)里最多只有2个奇数,否则无解

分情况讨论

0个奇数:\(a\)就是\(A\),\(b\)是\(A_1+1,A_2...A_{n-1},A_n-1\)

1个奇数:

\(a\):奇数放后面,其余不变

\(b\): 同上,第一个+1,最后一个-1

2个奇数:

\(a\):一个奇数放前面,一个放后面,其余不变

\(b\):同上,第一个+1,最后一个-1,如果最后一个是1的话就不输出

特判\(n=1\)

Code

#include<cstdio>
using namespace std;
int n,t,a[100001],c[100001];
int main()
{
freopen("b.in","r",stdin);
freopen("b.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;++i)
scanf("%d",&a[i]);
if (n==1) printf("%d\n",a[1]),printf("2\n"),printf("%d %d\n",1,a[1]-1);
else
{
for (int i=1;i<=n;++i)
if (a[i]&1)
c[++t]=a[i];
for (int i=1;i<=n;++i)
if (!(a[i]&1))
c[++t]=a[i];
for (int i=2;i<=n;++i)
printf("%d ",c[i]);
printf("%d\n",c[1]);
if (c[1]==1) printf("%d\n",n-1);
else printf("%d\n",n);
printf("%d ",c[2]+1);
for (int i=3;i<n;++i)
printf("%d ",c[i]);
if (c[1]==1) printf("%d\n",c[n]-1);
else printf("%d %d\n",c[n],c[1]-1);
}
fclose(stdin);
fclose(stdout);
return 0;
}

最新文章

  1. SQLServer操作结果集
  2. poi管道流的导入导出
  3. WinForm动态添加控件及其事件(转)
  4. Android——模拟文件拷贝
  5. MyEclipse 6.5 破解文件代码
  6. Mysql的相关命令
  7. 防止IFRAME页被嵌套
  8. JavaScript关于js垃圾回收
  9. 通过ssh协议实现用户key认证登录
  10. iOS9 HTTP 网络访问问题
  11. 开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法
  12. 按照固定字符数切割字符串 基于python的re正则表达式
  13. python 特别的生成器表达式
  14. Win2012R2 AD主域控登录密码忘记
  15. [No0000193]Chrome浏览器控制台(console)花式调试
  16. 20170805_Elasticsearch_简介和安装
  17. 关于c++11中的thread库
  18. egrep 实用参数
  19. HDU-6336-构造
  20. c++ 预处理和多重替换

热门文章

  1. 寻找性能更优秀的动态 Getter 和 Setter 方案
  2. 《Web接口开发与自动化测试》学习笔记(三)
  3. 找不到package
  4. Python正则表达式-换行的匹配
  5. 准备数据集用于flink学习
  6. win10,安装 vmware 后没有虚拟网卡,导致虚拟机没有 ip
  7. Python学习笔记4:函数
  8. 自定义圆角背景的textview,抛弃shape
  9. 加解密 C语言实现
  10. 了解LockSupport工具类