求n个数的序列,相邻两个数的绝对值的不同取值有k个 但详细哪k个数不限
#include <iostream> #include <stdio.h> #include <string> #include <cstring> #include <algorithm> #include <cmath> #define N 100009 using namespace std; int a[N]; int vis[N]; int main() { int n,k; while(~scanf("%d%d",&n,&k)) { int t=n; int m=1; for(int i=1;i<=k;i+=2) { a[i]=m; m++; } for(int i=2;i<=k;i+=2) { a[i]=t; t--; } if(k%2==0) { for(int i=k+1;i<=n;i++) a[i]=a[i-1]-1; } else for(int i=k+1;i<=n;i++) a[i]=a[i-1]+1; for(int i=1;i<n;i++) cout<<a[i]<<" "; cout<<a[n]<<endl; } return 0; }