题解:P13752 【MX-X17-T1】Walk,Walk,Walk
weifengzhaomi · · 题解
思路
容易发现,对于任意一条线如果在两个点的中间,就一定会经过这条直线,所以我们把每条线记录下来,判断一下。
代码
#include<bits/stdc++.h>
using namespace std;
int a,b,a1,b1,n,ans,x[100010],y[100010];
int main(){
cin >> n;
for (int i = 1;i <= n;i++) scanf("%d%d",&x[i],&y[i]);
cin >> a >> b >> a1 >> b1;
for (int i = 1;i <= n;i++){
if (x[i] == 1){
if ((y[i] >= a && y[i] <= a1) || (y[i] <= a && y[i] >= a1)) ans++;
} else if ((y[i] >= b && y[i] <= b1) || (y[i] <= b && y[i] >= b1)) ans++;
}
cout << ans << endl;
}