求教,为什么编译失败
本地编译没有问题,样例也过了
#include<bits/stdc++.h>
using namespace std;
struct plane{
int a,l,n;
};
struct plane1{
int a,l;
}p1[100010];
struct plane2{
int a,l;
}p2[100010];
struct cmp
{
operator()(plane x,plane y)
{return x.n<y.n;}
};
bool cp1(plane1 a,plane1 b)
{
return a.a<b.a;
}
bool cp2(plane2 a,plane2 b)
{
return a.a<b.a;
}
int b1[100010],b2[100010],ln;
priority_queue<plane,vector<plane>,cmp>q1;
priority_queue<plane,vector<plane>,cmp>q2;
int main()
{
int n,m1,m2;
cin>>n>>m1>>m2;
for(int i=1;i<=m1;i++)
{
cin>>p1[i].a>>p1[i].l;
}
for(int i=1;i<=m2;i++)
{
cin>>p2[i].a>>p2[i].l;
}
sort(p1+1,p1+m1+1,cp1);
sort(p2+1,p2+m2+1,cp2);
ln=0;
for(int i=1;i<=m1;i++)
{
plane p;
p.a=p1[i].a;
p.l=p1[i].l;
vector<plane>v;
while(q1.size()>0)
{
plane t=q1.top();
if(p.a>t.l)
{
p.n=t.n;
b1[p.n]++;
q1.pop();
q1.push(p);
break;
}
else
{
v.push_back(t);
q1.pop();
}
}
if(q1.size()==0)
{
ln++;
p.n=ln;
b1[p.n]++;
q1.push(p);
}
for(int j=0;j<v.size();j++)
{
q1.push(v[j]);
}
}
ln=0;
for(int i=1;i<=m2;i++)
{
plane p;
p.a=p2[i].a;
p.l=p2[i].l;
vector<plane>v;
while(q2.size()>0)
{
plane t=q2.top();
if(p.a>t.l)
{
p.n=t.n;
b2[p.n]++;
q2.pop();
q2.push(p);
break;
}
else
{
v.push_back(t);
q2.pop();
}
}
if(q2.size()==0)
{
ln++;
p.n=ln;
b2[p.n]++;
q2.push(p);
}
for(int j=0;j<v.size();j++)
{
q2.push(v[j]);
}
}
for(int i=2;i<=n;i++)
{
b1[i]+=b1[i-1];
b2[i]+=b2[i-1];
}
int as=0;
for(int i=0;i<=n;i++)
{
int j=n-i;
as=max(as,b1[i]+b2[j]);
}
cout<<as;
return 0;
}