Submission #367345

#TimeUsernameProblemLanguageResultExecution timeMemory
367345piddddgyExhibition (JOI19_ho_t2)C++11
100 / 100
222 ms4696 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; // #define cerr if(false) cerr #define watch(x) cerr << (#x) << " is " << (x) << endl; #define endl '\n' #define ld long double #define int long long #define pii pair<int, int> #define fi first #define se second #define sz(a) (int)(a).size() #define all(x) (x).begin(), (x).end() auto seed = chrono::high_resolution_clock::now().time_since_epoch().count(); mt19937 mt(seed); const int maxn = 100500; int n, m; pii a[maxn]; int c[maxn]; int ans = 0; // take the x biggest frames bool go(int upto) { priority_queue<int> pq; for(int i = 1; i <= upto; i++) { pq.push(-c[i]); } int loc = 0; int lst = -1e18; for(int i = 1; i <= n; i++) { if(pq.empty()) break; int x = -pq.top(); if(a[i].se <= x) { loc++; pq.pop(); } } ans = max(ans, loc); return loc == upto; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; // .fi = value, .se = size for(int i = 1; i <= n; i++) { cin >> a[i].se >> a[i].fi; } for(int i = 1; i <= m; i++) cin >> c[i]; sort(a+1, a+n+1); sort(c+1, c+m+1); reverse(c+1, c+m+1); // for(int i = 1; i <= m; i++) go(i); int l = 1, r = m; while(l <= r) { int mid = (l+r)/2; if(go(mid)) { l = mid+1; } else { r = mid-1; } } cout << ans << endl; } /* sort by value then by size you will always take the biggest frames Did you read the bounds? Did you make typos? Are there edge cases (N=1?) Are array sizes proper? Integer overflow? DS reset properly between test cases? Is using long longs causing TLE? Are you using floating points? */

Compilation message (stderr)

joi2019_ho_t2.cpp: In function 'bool go(long long int)':
joi2019_ho_t2.cpp:37:9: warning: unused variable 'lst' [-Wunused-variable]
   37 |     int lst = -1e18;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...