Traffic
Avin is observing the cars at a crossroads. He finds that there are n cars running in the east-west direction with the i-th car passing the intersection at time ai . There are another m cars running in the north-south direction with the i-th car passing the intersection at time bi . If two cars passing the intersections at the same time, a traffic crash occurs. In order to achieve world peace and harmony, all the cars running in the north-south direction wait the same amount of integral time so that no two cars bump. You are asked the minimum waiting time.
Input
The first line contains two integers n and m (1 ≤ n, m ≤ 1, 000). The second line contains n distinct integers ai (1 ≤ ai ≤ 1, 000). The third line contains m distinct integers bi (1 ≤ bi ≤ 1, 000).
Output
Print a non-negative integer denoting the minimum waiting time.
Sample Input
1 1 1 1 1 2 2 1 3
Sample Output
1 0
题意思是南北方向的所有的车需要等待一个共同的时间t,使东西方向的车和南门方向的车通过路口时不发生碰撞。将东西方向的车的时间标记,将南北方向的所有车的时间都加上时间t(暴力找t,依次加一),直到南北方向的所有车的时间加上该时间t不会有任何一辆车与东西方向的车的时间相同,该时间t就是所要的等待的最短时间。
(这个题计时间t的时候不可以用循环,会超时,写题的时候换了好多好多,一直超时,kule,也可能我的循环方法不对)
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int main()
{
int n,m;
cin >> n >> m;
int a[maxn],b[maxn];
int c[maxn];
for(int i = 0;i < n;i ++){
cin >> a[i];
c[a[i]] = 1;
}
for(int i = 0;i < m;i ++)
cin >> b[i];
int t = 0;
while(true){
int flag = t;
for(int i = 0;i < m;i ++){
if(c[b[i] + t] == 1){
t ++;
break;
}
}
if(flag == t) break;
}
cout << t << endl;
return 0;
}