Submission #1281045

#TimeUsernameProblemLanguageResultExecution timeMemory
1281045dostsTopical (NOI23_topical)C++20
0 / 100
1 ms572 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int MOD = 1e9+7, LIM = 1e6+1, inf = 2e9;

const int N = 1e5+1;

void solve() {
    int c,p;
    cin >> c >> p;
    //bir conteste birden \xe7ok submitleniyo 
    //>= m olanlar beni kullan?p +s alabilir
    //m1 <= m2 ve s1 >= s2 ise c2 gereksiz
    vector<pii> contests;
    for (int i=1;i<=c;i++) {
        int m,s;
        cin >> m >> s;
        contests.push_back({m,s});
    }
    sort(all(contests));
    vector<pii> filt;
    for (auto it : contests) {
        while (!filt.empty() && filt.back().ss < it.ss && filt.back().ff == it.ff) filt.pop_back();
        if (filt.empty() || filt.back().ss < it.ss) {
            filt.push_back(it);
        }
    }
    int ans = 0;
    for (int i=1;i<=p;i++) {
        int q,d;
        cin >> q >> d;
        auto it = upper_bound(all(filt),pii{q,inf});
        if (it == filt.begin()) continue;
        it = prev(it);
        if (it->ss < d) continue;
        ans+=it->ss-d;
    }
    cout << ans << '\n';
} 

signed main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    #ifdef Dodi
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout);
    #endif
    int t = 1;
    //cin >> t;
    while (t --> 0) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...