Submission #1160128

#TimeUsernameProblemLanguageResultExecution timeMemory
1160128HanksburgerAdvertisement 2 (JOI23_ho_t2)C++20
59 / 100
2093 ms330860 KiB
#include <bits/stdc++.h> #define int long long using namespace std; vector<pair<int, int> > vec; unordered_set<int> s; void upd(int a, int b) { for (int i=a; i<=2000000000; i+=i&(-i)) for (int j=b; j<=2000000000; j+=j&(-j)) s.insert(i*2000000001+j); } int qry(int a, int b) { for (int i=a; i; i-=i&(-i)) for (int j=b; j; j-=j&(-j)) if (s.find(i*2000000001+j)!=s.end()) return 1; return 0; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, cnt=0; cin >> n; for (int i=0; i<n; i++) { int x, y; cin >> x >> y; vec.push_back({y, x}); } sort(vec.begin(), vec.end(), greater<pair<int, int> >()); for (int i=0; i<n; i++) { int y=vec[i].first, x=vec[i].second; if (!qry(-x-y+2000000001, x-y+1000000000)) { upd(-x-y+2000000001, x-y+1000000000); cnt++; } } cout << cnt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...