Submission #1185056

#TimeUsernameProblemLanguageResultExecution timeMemory
1185056inesfiExhibition (JOI19_ho_t2)C++20
50 / 100
24 ms8516 KiB
#include<bits/stdc++.h>
using namespace std;

#define endl "\n"
#define int long long

const int TAILLEMAXI=1002;
int dejavu[TAILLEMAXI][TAILLEMAXI]; /////////tab,cadre
int nbtableaux,nbcadres;
vector<pair<int,int>> tableaux;
vector<int> cadres;

int dp(int tabec,int cadreec){
    if (cadreec>=nbcadres or tabec>=nbtableaux){
        return 0;
    }
    if (dejavu[tabec][cadreec]!=-1){
        return dejavu[tabec][cadreec];
    }
    int val=max(dp(tabec+1,cadreec),dp(tabec,cadreec+1));
    if (tableaux[tabec].second<=cadres[cadreec]){
        val=max(val,dp(tabec+1,cadreec+1)+1);
    }
    dejavu[tabec][cadreec]=val;
    return val;
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>nbtableaux>>nbcadres;
    for (int i=0;i<nbtableaux;i++){
        for (int j=0;j<nbcadres;j++){
            dejavu[i][j]=-1;
        }
    }
    for (int i=0;i<nbtableaux;i++){
        int s,v;
        cin>>s>>v;
        tableaux.push_back({v,s});
    }
    sort(tableaux.begin(),tableaux.end());
    for (int i=0;i<nbcadres;i++){
        int v;
        cin>>v;
        cadres.push_back(v);
    }
    sort(cadres.begin(),cadres.end());
    cout<<dp(0,0)<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...