求助,为什么这个思路是错误的
  • 板块P1007 独木桥
  • 楼主dfxgbm
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/4/4 16:12
  • 上次更新2023/11/5 01:03:27
查看原帖
求助,为什么这个思路是错误的
468029
dfxgbm楼主2021/4/4 16:12

我想的是最短时间=最靠近中间的人所用最短时间 如果同时有两人最靠近中间,则最短时间为时间较长者 感觉好像没什么问题,但提交上去会WA一个点 请问是为什么

#include <cstdio>
#include <algorithm>
#define cmp1(i) abs(a[i]-l/2)
#define cmp2(i) abs(minmid-l/2)
const short M=5001;
using namespace std;
int a[M];
int main(){
    int l,n,minmid=0,mint=0xfffff,maxt=0; //minmid:最接近中点的人
    scanf("%d%d",&l,&n);
    for(int i=0;i<n;i++){
    	scanf("%d",&a[i]);
    	if((cmp1(i)<cmp2(i))||(cmp1(i)==cmp2(i)&&a[i]>l/2))
    		minmid=a[i];
    	maxt=max(maxt,max(a[i],l+1-a[i]));
	}
	if(minmid>l/2)
		mint=l+1-minmid;
	else
		mint=minmid;
	printf("%d %d",mint,maxt);
    return 0;
}
2021/4/4 16:12
加载中...