因为n的范围比较小,可以直接暴力n^2算一下,在排序之后,算一下以第i个为结尾的最多可以击败的怪物数量

void solve(){
    int n,H,A;
    cin>>n>>H>>A;
    vector<pair<int,int>>g(n);
    for(int i=0;i<n;i++){
        cin>>g[i].first;
    }
    for(int i=0;i<n;i++){
        cin>>g[i].second;
    }
    sort(g.begin(),g.end());
    vector<int> f(n,1);
    for(int i=0;i<n;i++){
        for(int j=0;j<i;j++){
            if(g[j].first<g[i].first&&g[j].second<g[i].second){
                f[i]=max(f[j]+1,f[i]);
            }
        }
    }
    int ans=0;
    for(int i=0;i<n;i++){
        if(g[i].first<H&&g[i].second<A){
            ans=max(ans,f[i]);
        }
    }cout<<ans;
}