2021.10.30 出差错题目 一直在排查mod n的问题,最终还是用朴素方法 位置是1 - n 不是 0 到 n-1 不能用mod运算 比如1+4modn 就坏了
其次是局部变量 maxtime 要在第二层循环时进行初始化,不让还是上一轮结果。
#include<cmath>
using namespace std;
int n,m,a[1010];
int main()
{
while(cin >> n >> m){
//n--;
for(int i =0;i <m;i++){
cin >> a[i];
//a[i]--;
}
int maxtime =0,mintime = 100500,step;
for(int i = 1;i <=n;i++){
int maxtime = 0;//坏事一步
for(int j =0;j<m;j++){//每组最大时间
//step=min((a[j]+i)%n,abs(a[j]-i));
step =abs(a[j]-i);
if(step >= n/2) step = n-step;
if(step >maxtime)
maxtime=step;
}
if(maxtime < mintime) mintime =maxtime;
}
cout << mintime <<endl;
}
return 0;
}
注意第14行是不行的。
2021.10.30 重新考虑了 0 - n-1写法 无果 算了 就这样吧
参考牛客本题大佬题解