제출 #1342008

#제출 시각아이디문제언어결과실행 시간메모리
1342008DangerNoodle7591Exhibition (JOI19_ho_t2)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define N 1005
#define pb push_back
#define p push
#define int long long int
#define s second
#define big 1000000000000

int arr[N];
int frame[N];
int n,m;

signed main(){
    lalala;
    //memset(dp,-1,sizeof(dp));
    cin>>n>>m;
    vector<pair<int,int>> v;
    for(int i=1;i<=n;i++){
        int a,b;cin>>a>>b;
        v.pb({-b,a});
    }
    sort(v.begin(),v.end());
    for(int i=0;i<n;i++)arr[i+1]=v[i].s;
    for(int i=1;i<=m;i++){
        cin>>frame[i];
        /*kac[i]++;
        int ok=0;
        for(int j=1;j<i;j++){
            if(frame[j]<=frame[i]){
                adj[j].pb(i);
                ok=1;
            }
        }
        if(ok==0)adj[0].pb(i);*/
    }
    stack<int> st;
    vector<stack<int>> wow;
    for(int i=1;i<=n;i++){
        if(st.size()&&st.top()>arr[i])wow.pb(st);
        while(st.size()&&st.top()>arr[i]){
            st.pop();
        }
        st.p(arr[i]);
    }
    wow.pb(st);

    int cev=0;
    for(auto u:wow){
        int yer=0,kac=0;
        vector<int> yey;
        while(u.size()){
            yey.pb(u.top());u.pop();
        }
        reverse(yey.begin(),yey.end());
        for(int i=1;i<=m&&yer<yey.size();i++){
            if(yey[yer]<=frame[i]){
                kac++;
                yer++;
            }
        }
        cev=max(cev,kac);
    }
    cout<<cev<<endl;




}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...