#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
using namespace std;
const int md = 1e9 + 7;
const int maxn = 5e5;
struct Mint {
int v;
static const int md = 1e9 + 7;
Mint(long long _v = 0) {
v = int((_v % md + md) % md);
}
Mint& operator+=(const Mint& other) {
v += other.v;
if (v >= md) v -= md;
return *this;
}
Mint& operator-=(const Mint& other) {
v -= other.v;
if (v < 0) v += md;
return *this;
}
Mint& operator*=(const Mint& other) {
v = int((1LL * v * other.v) % md);
return *this;
}
friend Mint operator+(Mint a, const Mint& b) { return a += b; }
friend Mint operator-(Mint a, const Mint& b) { return a -= b; }
friend Mint operator*(Mint a, const Mint& b) { return a *= b; }
friend Mint power(Mint a, long long b) {
Mint res = 1;
while (b > 0) {
if (b & 1) res *= a;
a *= a;
b >>= 1;
}
return res;
}
friend ostream& operator<<(ostream& os, const Mint& m) { return os << m.v; }
friend istream& operator>>(istream& is, Mint& m) { long long x; is >> x; m = Mint(x); return is; }
explicit operator bool() const { return v != 0; }
bool operator==(int x) const { return v == ((x % md + md) % md); }
bool operator!=(int x) const { return v != ((x % md + md) % md); }
};
signed main(){
int n, m;
cin >> n >> m;
vector<array<int, 2>> T;
for(int i = 0; i < n; i++){
int u, v;
cin >> u >> v;
T.push_back({v, u});
}
sort(T.rbegin(), T.rend());
vector<int> Q;
for(int i = 0; i < m; i++){
int q;
cin >> q;
Q.push_back(q);
}
sort(Q.rbegin(), Q.rend());
int j = 0;
vector<int> g;
int cur = 0;
for(int i = 0; i < n; i++){
if(T[i][1] <= Q[j]){
j += 1;
}
}
cout << j;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |