Submission #1162575

#TimeUsernameProblemLanguageResultExecution timeMemory
1162575abysmalExhibition (JOI19_ho_t2)C++20
100 / 100
100 ms1932 KiB
#include<algorithm> #include<complex> #include<iostream> #include<map> #include<queue> #include<set> #include<stdint.h> #include<vector> #ifdef LOCAL #include "dbg.h" #else #define dbg(...) #endif using namespace std; const int64_t INF = (int64_t) 1e18 + 777; const int64_t mINF = (int64_t) 1e9 + 777; const int64_t MOD = (int64_t) 1e9 + 7; struct Picture { int s; int v; Picture(int s_, int v_) : s(s_), v(v_) {} bool operator < (const Picture& o) { if(v == o.v) return s < o.s; return v < o.v; } }; struct Solution { Solution() {} void solve() { int n; int m; cin >> n >> m; vector<Picture> pic; vector<int> c(m); for(int i = 0; i < n; i++) { int s; int v; cin >> s >> v; pic.emplace_back(s, v); } for(int i = 0; i < m; i++) { cin >> c[i]; } sort(c.begin(), c.end()); sort(pic.begin(), pic.end()); int ans = 0; int j = n - 1; for(int i = m - 1; i >= 0; i--) { while(j >= 0 && pic[j].s > c[i]) j--; if(j >= 0) { ans++; j--; } } cout << ans << "\n"; } int modadd(int a, int b) { int res = a + b; if(res >= MOD) res -= MOD; return res; } int modmul(int a, int b) { return (1LL * a * b) % MOD; } }; int main() { int t = 1; //cin >> t; for(int i = 0; i < t; i++) { Solution().solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...