Submission #1160126

#TimeUsernameProblemLanguageResultExecution timeMemory
1160126HanksburgerAdvertisement 2 (JOI23_ho_t2)C++20
59 / 100
2116 ms630572 KiB
#include <bits/stdc++.h> #define int long long using namespace std; vector<pair<int, int> > vec; map<pair<int, int>, int> mp; void upd(int a, int b) { for (int i=a; i<=2000000000; i+=i&(-i)) for (int j=b; j<=2000000000; j+=j&(-j)) mp[{i, j}]++; } int qry(int a, int b) { for (int i=a; i; i-=i&(-i)) for (int j=b; j; j-=j&(-j)) if (mp[{i, j}]) 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...