Submission #1341851

#TimeUsernameProblemLanguageResultExecution timeMemory
1341851DangerNoodle7591Exhibition (JOI19_ho_t2)C++20
0 / 100
1 ms352 KiB
#include <bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define N 15
#define pb push_back
#define int long long int
#define s second
#define big 1000000000000

int arr[N];
vector<int> cerceve;
int dp[N][N][N];
int n,m;
int coz(int i,int j,int mx){//j ilk bos yer
    if(i>=n||j>=m)return 0;
    if(dp[i][j][mx]!=-1)return dp[i][j][mx];
    int lim=-3;
    if(j!=0)lim=arr[mx];
    int a=max(coz(i,j+1,mx),coz(i+1,j,mx)),b=-1;

    if(arr[i]<=cerceve[j]&&cerceve[j]>=lim)b=coz(i+1,j+1,j)+1;
    //cout<<i<<" "<<j<<" "<<mx<<"  "<<a<<" "<<b<<endl;
    dp[i][j][mx]=max(a,b);
    return dp[i][j][mx];
}

signed main(){
    lalala;
    memset(dp,-1,sizeof(dp));
    cin>>n>>m;
    vector<pair<int,int>> v;
    for(int i=0;i<n;i++){
        int s,vv;cin>>s>>vv;
        v.pb({-vv,s});
    }
    for(int i=0;i<m;i++){
        int a;cin>>a;
        cerceve.pb(a);
    }
    sort(v.begin(),v.end());

    for(int i=0;i<n;i++)arr[i]=v[i].s;
    /*for(int i=0;i<n;i++)cout<<arr[i]<<" ";
    cout<<endl;*/

    cout<<coz(0,0,0)<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...