Diverse Permutation - CodeForces 482 A 水题
2014-11-10 23:27
337 查看
A. 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 asn the 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.
题意:排列n个数,使得相邻两个数的差一共有k种。
思路:我们不难想出最多有n-1种差,假设n是10的话,那么就是1、10、2、9、3、8、4、7、5、6这么排,减少k的话,只需要让后面的按顺序使得差为1即可。
AC代码如下:
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 asn the 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.
题意:排列n个数,使得相邻两个数的差一共有k种。
思路:我们不难想出最多有n-1种差,假设n是10的话,那么就是1、10、2、9、3、8、4、7、5、6这么排,减少k的话,只需要让后面的按顺序使得差为1即可。
AC代码如下:
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> using namespace std; typedef long long ll; int main() { int T,t,n,m,i,j,k,l,r; scanf("%d%d",&n,&k); l=1;r=n; for(i=1;i<=k;i++) { if(i&1) { printf("%d ",l); l++; } else { printf("%d ",r); r--; } } if(!(i&1)) for(i=l;i<=r;i++) printf("%d ",i); else for(i=r;i>=l;i--) printf("%d ",i); printf("\n"); }
相关文章推荐
- codeforces 258 A Game With Sticks(水题)
- CodeForces - 868A Bark to Unlock 水题
- Sereja ans Anagrams - CodeForces 367B 水题
- Yaroslav and Sequence - CodeForces 301A 水题
- CodeForces 706A Beru-taxi (数学计算,水题)
- Codeforces 366A Dima and Guards 【水题】
- codeforces 707A Brain's Photos 【水题】
- Codeforces 764A Taymyr is calling you(水题翻译)
- Codeforces 825D Suitable Replacement【贪心】水题
- Codeforces 658A Bear and Reverse Radewoosh 【水题】
- Codeforces--660A--Co-prime Array(数学水题)
- Codeforces 478A Initial Bet(数学水题)
- CodeForces 660D Number of Parallelograms(水题)
- CodeForces 482 B. Interesting Array
- Bits - CodeForces 484 A 水题
- codeforces 669C C. Little Artem and Matrix(水题)
- codeforces 672B B. Different is Good(水题)
- Codeforces 96A: Football(水题)
- Codeforces 598B Queries on a String 【水题】
- Codeforces 545D - Queue (水题)