虽然不难但要点技巧
思路:
可将独木桥看成一条线段,士兵是线段上的点
由于士兵的移动速度一样,所以士兵之间没有差别
因此,当两个士兵相遇时转身时,
可以当作他们穿过了对方
所以只需要统计每个士兵与桥头的距离即可
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int Mn(5050); int main() { int l,n; scanf("%d%d",&l,&n); int a1(0),a2(0); for(int i(1);i<=n;++i) { int x; scanf("%d",&x); a1 = max(a1,min(x,l-x+1)); a2 = max(a2,max(x,l-x+1)); } printf("%d %d",a1,a2); return 0; }
|