【NOIP2017提高A组模拟9.12】Arrays and Palindrome
2024-08-27 23:13:36
【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;
}
最新文章
- SQLServer操作结果集
- poi管道流的导入导出
- WinForm动态添加控件及其事件(转)
- Android——模拟文件拷贝
- MyEclipse 6.5 破解文件代码
- Mysql的相关命令
- 防止IFRAME页被嵌套
- JavaScript关于js垃圾回收
- 通过ssh协议实现用户key认证登录
- iOS9 HTTP 网络访问问题
- 开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法
- 按照固定字符数切割字符串 基于python的re正则表达式
- python 特别的生成器表达式
- Win2012R2 AD主域控登录密码忘记
- [No0000193]Chrome浏览器控制台(console)花式调试
- 20170805_Elasticsearch_简介和安装
- 关于c++11中的thread库
- egrep 实用参数
- HDU-6336-构造
- c++ 预处理和多重替换