【CODEFORCES】C. Diverse Permutation
2015-11-02 20:33
423 查看
C. Diverse Permutation
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Permutation p is an ordered set of integers p1, p2, ..., pn,
consisting of n distinct positive integers not larger than n.
We'll denote as nthe length of permutation p1, p2, ..., pn.
Your task is to find such permutation p of length n,
that the group of numbers |p1 - p2|, |p2 - p3|, ..., |pn - 1 - pn| has
exactly k distinct elements.
Input
The single line of the input contains two space-separated positive integers n, k (1 ≤ k < n ≤ 105).
Output
Print n integers forming the permutation. If there are multiple answers, print any of them.
Sample test(s)
input
output
input
output
input
output
Note
By |x| we denote the absolute value of number x.
题解:这一题就是简单构造,1,n-1,2……构造k个不同的差就可以了。
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Permutation p is an ordered set of integers p1, p2, ..., pn,
consisting of n distinct positive integers not larger than n.
We'll denote as nthe length of permutation p1, p2, ..., pn.
Your task is to find such permutation p of length n,
that the group of numbers |p1 - p2|, |p2 - p3|, ..., |pn - 1 - pn| has
exactly k distinct elements.
Input
The single line of the input contains two space-separated positive integers n, k (1 ≤ k < n ≤ 105).
Output
Print n integers forming the permutation. If there are multiple answers, print any of them.
Sample test(s)
input
3 2
output
1 3 2
input
3 1
output
1 2 3
input
5 2
output
1 3 2 4 5
Note
By |x| we denote the absolute value of number x.
题解:这一题就是简单构造,1,n-1,2……构造k个不同的差就可以了。
#include <iostream> #include <cstring> #include <cstdio> using namespace std; int n,k; int main() { scanf("%d%d",&n,&k); //build if (k==1) { for (int i=1;i<=n;i++) printf("%d ",i); return 0; } else { int last=1,t=n,f=1,p=1; printf("%d ",last); while (k!=1) { last=last+(--t)*f; f=f*(-1); printf("%d ",last); p++; k--; } if (f>=0) for (int i=p-p/2+1;i<=n-p/2;i++) printf("%d ",i); else for (int i=n-p/2;i>=p-p/2+1;i--) printf("%d ",i); } return 0; }
相关文章推荐
- XML的dtd与Schema约束
- 项目部署到Tomcat根目录,server.xml 配置详解
- Lua1.0 文件简介
- xml 文件的增删改查
- 递归的一些简单实现(c实现)
- 回答一下这些游戏帧数有关的问题吗?
- JQuery.validate的使用方法(实例)
- maven之Nexus工具的介绍与安装步骤(四)
- 折半查找的优化版本
- Web前端开发知识点1
- 关于贪心算法
- Lua1.0 脚本初步印象
- Jsoup的使用
- kprobe 内核模块
- CIE-LUV是什么颜色特征
- 理论计算机图形渲染技术是否已经到了没有什么可以研究的地步了?
- 指针与数组
- 把颜色转化成图片-swift
- CSU 1536 bit string reordering
- 前端工程师需要明白的「像素」