标签:不同 line 就是 数列 rpo 表示 ref 分享图片 nbsp
入坑题目
1 #include <cstdio> 2 #include <algorithm> 3 using namespace std; 4 const int N = 1e5 + 5; 5 const int inf = 0x3f3f3f3f; 6 int n, m; 7 int q1[N], q2[N], h1 = 1, h2 = 1, t1, t2; 8 9 struct A{ 10 int x, y; 11 }a[N]; 12 bool cmp(A x, A y){ 13 return x.x < y.x; 14 } 15 16 int main(){ 17 int ans = inf; 18 scanf("%d%d", &n, &m); 19 for(int i = 1; i <= n; i++) scanf("%d%d", &a[i].x, &a[i].y); 20 sort(a + 1, a + n + 1, cmp); 21 for(int i = 1, j = 0; i <= n; i++){ 22 while(h1 <= t1 && q1[h1] < i) h1++; 23 while(h2 <= t2 && q2[h2] < i) h2++; 24 while(a[q1[h1]].y - a[q2[h2]].y < m && j < n){ 25 j++; 26 while(h1 <= t1 && a[q1[t1]].y <= a[j].y) t1--; 27 q1[++t1] = j; 28 while(h2 <= t2 && a[q2[t2]].y >= a[j].y) t2--; 29 q2[++t2] = j; 30 } 31 if(a[q1[h1]].y - a[q2[h2]].y >= m) ans = min(ans, a[j].x - a[i].x); 32 } 33 printf("%d", ans == inf ? -1 : ans); 34 return 0; 35 }
标签:不同 line 就是 数列 rpo 表示 ref 分享图片 nbsp
原文地址:https://www.cnblogs.com/hjmmm/p/9281430.html