**
Traffic HDU 6573
**
题意 :
在十字路口,东西方向上有一堆车要进,给出了他们的到达时间,南北方向上也有一堆车要进,同样给出了到达时间,不过,东西优先,因此,南北需要集体等待最少多长时间才能不会与东西冲突。
思路:
正如很多大佬所言,这就是一个模拟的问题,用cnt来计数等待时间,分别遍历南北方向的每一辆车,让他们的到达时间+cnt来查询是否与东西冲突,是,则cnt++,否,则接着遍历。
代码:
#include<iostream>
#include <algorithm>
#include <cstring>
using namespace std;const int maxn=1000+5;
int eas[maxn],nor[maxn];
bool vis[maxn*3];//标记数组
int main(){
int n,m;ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);while(cin>>n>>m){
for(int i=0;i<n;i++){
cin>>eas[i];vis[eas[i]]=1;}for(int i=0;i<m;i++)cin>>nor[i];int cnt=0;while(1){
bool flag=0;for(int j=0;j<m;j++){
if(vis[nor[j]+cnt]){
cnt++;flag=1;break;}}if(!flag)break;}cout<<cnt<<endl;memset(vis,0,sizeof(vis));}return 0;
}