#include <stdio.h>
#include <stdlib.h>
int Min(int L,int n1[],int n1l)
{
int i;
int a;
int b;
int *min;
int minnmax;
min = (int*)malloc(n1l*sizeof(int));
a = L/2;
for (i=0;i<n1l;i++)
{
if(n1[i]<=L/2)
a = n1[i];
if(n1[i]>L/2)
b = (L+1)-n1[i];
if(a>b)
min[i]=a;
else
min[i]=b;
}
minnmax = min[0];
for (i=0;i<n1l;i++)
if(minnmax<min[i])
minnmax=min[i];
return minnmax;
}
int Max(int L,int n1[],int n1l)
{
int i;
int *max;
int maxest;
max = (int*)malloc(n1l*sizeof(int));//生成保存最大值的动态数组
for (i=0;i<n1l/4;i++)
{
if(n1[i]>(L+1)-n1[i])
max[i] = n1[i];
else
max[i] = (L+1)-n1[i];
}
maxest = max[0];
for (i=0;i<n1l;i++)
if(maxest<max[i])
maxest=max[i];
return maxest;
}
int main()
{
int L;
int n,*n1;
int i;
int n1l;
scanf("%d",&L);
scanf("%d",&n);
n1 = (int*)malloc(n*sizeof(int));
for (i=0;i<n;i++)
scanf("%d",&n1[i]);
n1l = sizeof(n1); printf("%d%d",Min(L,n1,n1l),Max(L,n1,n1l));
return 0;
}
```![](file:///D:/Download/%E6%9C%AA%E6%A0%87%E9%A2%98-1.jpg)