#include<stdio.h>
int L,n,m[100],z[100],i,cun,o,min,max,Min,x,v;
int suan(int t)
{
t=0;
for(i=1;i<=n;i++)
{
t=m[i]==0||m[i]==L+1?t:t+1;
}
if(t==0)
{
return 0;
}
else
{
for(i=1;i<=n;i++)
{
if(m[i]==0||m[i]==L+1)
{
m[i]=m[i];
}
else
{
m[i]=m[i]+z[i];
for(o=1;o<=n;o++)
{
if(m[i]==m[o])
{
cun=z[i];
z[i]=z[o];
z[o]=cun;
}
}
}
}
max++;
suan(t);
}
}
int main()
{
int u;
scanf("%d %d",&L,&n);
for(i=1;i<=n;i++)
{
scanf("%d",&m[i]);
}
v=L%2==0?L/2:(L-1)/2+1;
for(i=1,min=L;i<=n;i++)
{
x=m[i]>v?m[i]-v:v-m[i];
min=min>x?x:min;
}
Min=v;
max=0;
for(i=1;i<=n;i++)
{
z[i]=m[i]>v?-1:1;
}
u=0;
suan(u);
printf("%d %d",Min,max);
return 0;
}
我想模拟全过程并记录,但不知道怎么错了,求指点(时间复杂度方面,这已经是我尽力的了。)