社区讨论

求助,为什么这个思路是错误的

P1007独木桥参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@locgs4dr
此快照首次捕获于
2023/10/30 13:33
2 年前
此快照最后确认于
2023/11/05 01:03
2 年前
查看原帖
我想的是最短时间=最靠近中间的人所用最短时间 如果同时有两人最靠近中间,则最短时间为时间较长者 感觉好像没什么问题,但提交上去会WA一个点 请问是为什么
CPP
#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;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...