Submission #1321578

#TimeUsernameProblemLanguageResultExecution timeMemory
1321578michael12Exhibition (JOI19_ho_t2)C++20
50 / 100
104 ms2096 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...