原题链接:http://118.190.20.162/view.page?gpid=T112
❄️ | 题目描述给出一个矩形区域
给出 n 个人的行动轨迹,每一组数据包含多个坐标
有坐标处于矩形区域内称为经过;连续有 k 个坐标处于矩形区域内,称为逗留。
统计经过人数和逗留人数
✨ | 实现思路遍历每一个人的行动路线:
两个标记 flag1、flag2。记录是否经过或逗留
最后输出个数
| 具体代码```cpp #includeusing namespace std; int n, k, t, xl, yd, xr, yu; int cnt_p, cnt_w; bool check(int x, int y) { if (x >= xl && x <= xr && y >= yd && y <= yu) return true; return false; } int main() { cin >> n >> k >> t >> xl >> yd >> xr >> yu; for (int i = 1; i <= n; i ++) { bool flag_p = false, flag_w = false; int num = 0; // 连续经过的点数 for (int j = 1; j <= t; j ++) { int x, y; cin >> x >> y; if (check(x, y)) { flag_p = true; num ++; } else { if (num >= k) flag_w = true; num = 0; } } if (num >= k) flag_w = true; if (flag_p) cnt_p ++; if (flag_w) cnt_w ++; } cout << cnt_p << endl; cout << cnt_w << endl; } ```



