C - Diverse Permutation
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Submit Status Practice CodeForces 483C
Description
Permutationp 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 kdistinct 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 Input
Input
3 2
Output
1 3 2
Input
3 1
Output
1 2 3
Input
5 2
Output
1 3 2 4 5
Hint
By |x| we denote the absolute value of number x.
#include<cstdio> #include<cstring> #include<string> #include<iostream> #include<cmath> #include<cstdlib> #include<algorithm> using namespace std; int n,k; int main() { while(scanf("%d%d",&n,&k)!=EOF) { int temp; temp=n-k; for(int i=1;i<=temp;i++) printf("%d ",i); temp++; while(temp<=n) { printf("%d ",n); n--; if(temp<=n) printf("%d ",temp),temp++; else break; } } return 0; }