Submission #208476

#TimeUsernameProblemLanguageResultExecution timeMemory
208476YJUExhibition (JOI19_ho_t2)C++14
0 / 100
5 ms504 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> pll; typedef long double ld; const ll MOD=1e9+7; const ll N=1e6+5; const ld pi=3.14159265359; #define REP(i,n) for(ll i=0;i<n;i++) #define REP1(i,n) for(ll i=1;i<=n;i++) #define pb push_back #define mp make_pair #define X first #define Y second #define setp setprecision #define lwb lower_bound #define SZ(a) (ll)a.size() ll n,m,p[N]; pll u[N]; vector<ll> v; int main(){ //ios_base::sync_with_stdio(0);cin.tie(0); cin>>n>>m; REP(i,n){ cin>>u[i].X>>u[i].Y; } sort(u,u+n,[](pll a,pll b){ return (a.Y!=b.Y?a.Y<b.Y:a.X<b.X); }); REP(i,m)cin>>p[i]; sort(p,p+m); for(ll i=n-1;i>=0;i--){ if(SZ(v)==m)break; if(SZ(v)==0&&u[i].X<=p[m-1]){v.pb(u[i].X);continue;} if(SZ(v)==0)continue; if(u[i].X<=v.back()&&u[i].X<=p[m-SZ(v)-1]){ v.pb(u[i].X); }else{ ll l=-1,r=SZ(v)-1; while(r-l>1){ ll mid=(r+l)/2; if(v[mid]>u[i].X){ r=mid; }else{ l=mid; } } v[r]=u[i].X; } } cout<<SZ(v)<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...