题意是这样的:在一个十字路口,有N辆车是东西通行的,有M辆车是南北通行的,并且给你每辆车通过的十字路口的时刻表,当东西通行的车和南北同行的车同时通过十字路口的话就会发生碰撞,现在要求东西通行的时刻表不变,南北通行的车辆要集体最少等待多少时间才能不发生碰撞一开始题读错了,忽略了集体等待,好吧,其实是我太菜
#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
#define pi acos(-1.0)
#define e exp(1.0)
typedef long long ll;
const ll maxn=12000;
ll N,M;
ll a[maxn],b[maxn];
int main()
{
ios::sync_with_stdio(false);
cin>>N>>M;
ll i,j;
memset(a,0,sizeof(a));
for(i=1;i<=N;i++)
{
ll n;
cin>>n;
a[n]=1;
}
for(i=1;i<=M;i++)
cin>>b[i];
ll jie=0;
bool flag;
while(1)
{
flag=1;
for(i=1;i<=M;i++)
{
if(a[b[i]+jie])
{
flag=0;
break;
}
}
if(flag)
break;
jie++;
}
cout<<jie<<endl;
return 0;
}
需要注意的是数组要开的大一些,否侧会Runtime,这是因为a[b[i]+jie],这儿加上了等待的时间