# Apartments

Sun Sep 19 2021 09:23:17 GMT+0000 (UTC)

Saved by @Naredra

```#include<bits/stdc++.h>
using namespace std ;
#define ll long long  //always use this

int main()
{
const  int mxN = 2e5; //to make a maximum array
int n ,  m ,k, a[mxN], b[mxN];
cin>>n>>m>>k;
for(int i =0;i<n;i++)
{
cin>>a[i];
}
for(int i =0;i<m;i++)
{
cin>>b[i];
}
sort(a,a+n);
sort(b , b+m);
int ans = 0;
for(int i =0 , j =0 ;i<n;i++)
{
while(j<m && b[j]<a[i]-k)
j++;
if(j<m && b[j]<=a[i]+k)   //all logic in it
ans++, j++;
}
cout<<ans;

}```
content_copyCOPY

There are n applicants and m free apartments. Your task is to distribute the apartments so that as many applicants as possible will get an apartment. Each applicant has a desired apartment size, and they will accept any apartment whose size is close enough to the desired size. Input The first input line has three integers n, m, and k: the number of applicants, the number of apartments, and the maximum allowed difference. The next line contains n integers a1,a2,…,an: the desired apartment size of each applicant. If the desired size of an applicant is x, he or she will accept any apartment whose size is between x−k and x+k. The last line contains m integers b1,b2,…,bm: the size of each apartment. Output Print one integer: the number of applicants who will get an apartment. Constraints 1≤n,m≤2⋅105 0≤k≤109 1≤ai,bi≤109 Example Input: 4 3 5 60 45 80 60 30 60 75 Output: 2