#include<stdio.h>
char a[int(1e9)+10];
int len;
int main()
{
int n,i,j;
scanf("%d",&n);
len=0;
for(i=1;;i++)
{
a[len+1]='m';
for(j=1;j<=i+1;j++)
{
a[len+1+j]='o';
if(len+1+j>=n)
{
printf("%c",a[n]);
return 0;
}
}
for(j=0;j<len;j++)
{
a[len+i+3+j]=a[j+1];
if(len+i+3+j>=n)
{
printf("%c",a[n]);
return 0;
}
}
len=len+i+2+len;
}
return 0;
}
我的做法就是大模拟
本地运行输入1e9有结果,但在洛谷ide上2.8e8就内存超限了.