#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int n,t=2,pos,z[10000],c[100000];
void gjd(int a)
{
for(int i=1;i<=c[0];i++)c[i]*=a;
for(int i=1;i<c[0];i++)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[c[0]]>=10)
{
c[++c[0]]=c[c[0]-1]/10;
c[c[0]-1]%=10;
}
}
int main()
{
cin>>n;
while(t<=n)
{
z[t-1]=t;
n-=t;
t++;
}
pos=t-2;
while(n&&pos>=1)
{
z[pos]++;
pos--;
n--;
}
pos=t-2;
while(n&&pos>=1)
{
z[pos]++;
pos--;
n--;
}
c[0]=c[1]=1;
for(int i=1;i<=t-2;i++)gjd(z[i]);
for(int i=1;i<=t-2;i++)printf("%d ",z[i]);
cout<<endl;
for(int i=c[0];i>=1;i--)printf("%d",c[i]);
return 0;
}
拿题解的程序对拍过,答案都没问题,但是交到洛谷上就全错,有的点还显示说我的答案第二行第一个数字是0,就是说我输出的最大乘积是0开头的,但我将3到10000输进我的程序,我的程序得出的最大乘积开头都不是0。之前也遇到过类似的情况,就是在DEV上拿洛谷数据测没问题,交到洛谷上就错,不知是不是洛谷的问题。不知道为什么这题拿不了数据。