---
# System prepended metadata

title: Escalator Conversations

---

# Escalator Conversations
## [題目連結](https://codeforces.com/contest/1851/problem/A)
## 解題想法
* 將所有人由小到大排列，逐一比對
* 固定被比對者的高度(台階)，將台階差反應在用於比對的值，例:相對低一階的高度為[身高-一階的高度]
* 將用於比對的值隨著被比對者的身高修正
## 遭遇到的困難
* 比對和修正高度的程式花了一些時間想和修改
## 花費的時間：30分鐘
## 程式碼
```cpp=01
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
    int t,k;
    scanf("%d",&t);
    for(k=0;k<t;k++){
        int n,m,k,h,ans=0,i=0;
        scanf("%d%d%d%d",&n,&m,&k,&h);
        int p[n];
        for(i=0;i<n;i++)scanf("%d",&p[i]);
        sort(p,p+n);
        int a=h-k*(m-1),b=h+k*(m-1);
        while(i!=n&&a<=b){
            if(a==h)a+=k;
            else if(p[i]==a){
                ans++;
                i++;
            }
            else if(p[i]<a)i++;
            else a+=k;
        }
        printf("%d\n",ans);
    }
    return 0;
}
