Submission #1155275

#TimeUsernameProblemLanguageResultExecution timeMemory
1155275dnnndaAdvertisement 2 (JOI23_ho_t2)C++20
100 / 100
167 ms20624 KiB
#include<bits/stdc++.h> using namespace std; #define S second #define F first #define ll long long #define int long long //#pragma GCC optimize("Ofast, unroll-loop") //#pragma GCC target("avx,avx2") #pragma GCC optimize("O3") const int inf=0x3f3f3f3f; const ll inff=0x3f3f3f3f3f3f3f3f; const int X=1000000007; int l[500005], r[500005], ans; pair<int,int> p[500005]; // x, e bool vis[500005]; bool over(int i1, int i2){ return abs(p[i1].F-p[i2].F)<=p[i1].S-p[i2].S; } signed main(){ ios::sync_with_stdio(0), cin.tie(0); int n; cin >> n; for(int i=0 ; i<n ; i++) cin >> p[i].F >> p[i].S; sort(p,p+n); for(int i=1 ; i<n ; i++) l[i]=i-1; for(int i=0 ; i<n-1 ; i++) r[i]=i+1; l[0]=-1, r[n-1]=-1; vector<int> v; for(int i=0 ; i<n ; i++) v.push_back(i); sort(v.begin(),v.end(),[](int a, int b){ return p[a].S>p[b].S; }); for(int i:v){ if(vis[i]) continue; ans++; while(r[i]!=-1&&over(i,r[i])){ vis[r[i]]=1; l[r[r[i]]]=i; r[i]=r[r[i]]; } while(l[i]!=-1&&over(i,l[i])){ vis[l[i]]=1; r[l[l[i]]]=i; l[i]=l[l[i]]; } } cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...