标签:
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 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 Input
3 2
1 3 2
3 1
1 2 3
5 2
1 3 2 4 5
Hint
By |x| we denote the absolute value of number x.
1 #include <stdio.h> 2 #include <string.h> 3 int main() 4 { 5 int n,k; 6 int i,j; 7 int a[100005]; 8 while(scanf("%d %d",&n,&k)!=EOF) 9 { 10 memset(a,0,sizeof(a)); 11 int j=k+2,num=1; 12 a[1]=1; 13 printf("1"); 14 while(k) 15 { 16 if(num-k>0 && a[num-k]==0) 17 { 18 printf(" %d",num-k); 19 num=num-k; 20 a[num]=1; 21 } 22 else 23 { 24 printf(" %d",num+k); 25 num=num+k; 26 a[num]=1; 27 } 28 k--; 29 } 30 for(i=j;i<=n;i++) 31 { 32 printf(" %d",i); 33 } 34 printf("\n"); 35 } 36 return 0; 37 }
CodeForces 483C Diverse Permutation
标签:
原文地址:http://www.cnblogs.com/cyd308/p/4771536.html