```cpp
#include<bits/stdc++.h>
using namespace std;
long long a,b=1,c=0;
int y[20001],m=20000;
void p(int x)
{
y[0]=1;
for(int i=2;i<=x;i++)
{
for(int k=0;k<20001;k++)
{
y[k]*=i;
}
for(int k=0;k<20001;k++)
{
if(y[k]>9)
{
y[k+1]+=y[k]/10;
y[k]%=10;
}
}
}
}
int main()
{
cin>>a;
if(a==3)
{
cout<<1<<" "<<2<<endl<<2;
return 0;
}
if(a==4)
{
cout<<1<<" "<<3<<endl<<3;
return 0;
}
if(a==5)
{
cout<<2<<" "<<3<<endl<<6;
return 0;
}
if(a>5)
{
while(c<a)
{
b++;
c=c+b;
}
if(c==a)
{
for(int i=2;i<=b;i++)
{
cout<<i<<" ";
}
cout<<endl;
p(b);
bool f=0;
for(m=20000;m>=0;m--)
{
if(y[m]!=0)
{
f=1;
}
if(f)
{
cout<<y[m];
}
}
}
if(c==a+1)
{
y[0]=1;
for(int i=3;i<=b+1;i++)
{
if(i==b)
{
continue;
}
cout<<i<<" ";
for (int k=0;k<20001;k++)
{
y[k]*=i;
}
for(int k=0;k<20001;k++)
{
if(y[k]>=10)
{
y[k+1]+=y[k]/10;
y[k]%=10;
}
}
}
cout<<endl;
for(m;m>=0;m--)
{
cout<<y[m];
}
}
if(c>a+1)
{
long long p=c-a;
y[0]=1;
for(int i=2;i<=b;i++)
{
if(i==p)
{
continue;
}
cout<<i<<" ";
for(int k=0;k<20001;k++)
{
y[k]*=i;
}
for (int k=0;k<20001;k++)
{
if (y[k]>9)
{
y[k+1]+=y[k]/10;
y[k]%=10;
}
}
}
cout << endl;
while(y[m]==0&&m>0)
{
m--;
}
for(m;m>=0;m--)
{
cout<<y[m];
}
}
}
return 0;
}
by xingcode @ 2022-11-25 17:59:08