洛谷P1003题解
做法:模拟即可。
从底向上依次判断这个地毯是否符合条件,符合的话就输出。
复杂度 O(n) 。
1 #include<stdio.h> 2 int a[10010], b[10010], g[10010], k[10010], s[10010]; 3 int main() { 4 int n, i, x, y; 5 scanf("%d", &n); 6 for(i = 1; i <= n; ++i) { 7 scanf("%d%d%d%d", &a[i], &b[i], &g[i], &k[i]); 8 s[i]=i; 9 } 10 scanf("%d%d", &x, &y); 11 for(i = n; i >= 1; --i) { 12 if(x >= a[i] && x <= a[i] + g[i] && y >= b[i] && y <= b[i] + k[i]) { 13 printf("%d\n", s[i]); 14 return 0; 15 } 16 } 17 printf("-1\n"); 18 return 0; 19 }
代码是很久以前写的,所以没有预处理。