注解
1、仔细理解题目,是南北方向的所有车增加同样的时间。
2、要用到Hash的方法,南北方向每个车加上相同时间,判断是否与东西方向车的时间有重复。如果有,这个时间就不合适。直到某个时间,不会相撞,就输出结果。
代码
#include <iostream>
#include <cstring>
using namespace std;
const int maxn = 3001;
int main() {
int n, m;
while(cin>>n>>m) {
int a[maxn];
memset(a, 0, sizeof(a));
for(int i=0; i<n; i++){
int t;
cin>>t;
a[t] = 1;
}
int b[m];
for(int i=0; i<m; i++){
cin>>b[i];
}
int ans = 0;
while(true){
int last = ans;
for(int i=0; i<m; i++){
if(a[b[i]+ans]){
ans++;
break;
}
}
if(last==ans){
break;
}
}
cout<<ans<<endl;
}
return 0;
}