仔细想想还是比较简单的一道,是杨辉三角的变形,把最大的放中间,依次向两边散.
代码
#include<iostream>
using namespace std;
const int N=1e5+5;
int a[N],b[N],c[N];
#include<cstring>
int main()
{
int n;
cin>>n;
int k=0;
for(int i=1;i<=n;i++)
{
if(i&1)a[++k]=i;
else a[n-k+1]=i;
}
memcpy(b,a,sizeof(a));
int j=0;
for(int i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
b[j]=(b[j]+b[j+1])%1000000007;
}
}
cout<<b[j]<<endl;
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}