我的CSP-S第一题 暴力代码
#include<bits/stdc++.h> //rp++
using namespace std;
long long n,m1,m2;
struct plane
{
int arrive;
int leave;
};
plane a1[6000],a2[6000];
int maxn=0;
bool cmp(plane f1,plane f2)
{
if(f2.arrive>f1.arrive)
return 1;
return 0;
}
int main()
{
freopen("airport.in","r",stdin);
freopen("airport.out","w",stdout);
cin>>n>>m1>>m2;
for(int i=1;i<=m1;i++)
cin>>a1[i].arrive>>a1[i].leave;
for(int i=1;i<=m2;i++)
cin>>a2[i].arrive>>a2[i].leave;
sort(a1,a1+m1+1,cmp);
sort(a2,a2+m2+1,cmp);
for(int k=0;k<=n;k++)
{
int time1[1000000],time2[1000000];
for(int r=0;r<=1000000;r++)
{
time1[r]=0;
time2[r]=0;
}
int add=0;
//start1
for(int i=1;i<=m1;i++)
{
if(time1[a1[i].arrive]<k)
{
add++;
for(int j=a1[i].arrive;j<=a1[i].leave;j++)
time1[j]++;
}
}
//start2
for(int i=1;i<=m2;i++)
{
if(time2[a2[i].arrive]<n-k)
{
add++;
for(int j=a2[i].arrive;j<=a2[i].leave;j++)
time2[j]++;
}
}
maxn=max(maxn,add);
}
cout<<maxn;
return 0;
}
注意30-35行,定义0-999999的数组我访问到了1000000,会不会直接爆零(哭晕