Melhor emparelhador

Você decidiu implementar a versão mais simples de um aplicativo de encontros. Para isso, resolveu coletar as alturas das pessoas do Grupo A como e as alturas das pessoas do Grupo B como . O seu objetivo é formar o maior número possível de pares (lembrando que cada pessoa só pode ser pareada uma vez). Você acredita que um casal ficará satisfeito se:

  • A pessoa do Grupo B não for mais baixa do que a pessoa do Grupo A em x, e

  • A pessoa do Grupo B não for mais alta do que a pessoa do Grupo A em mais de y.

Seu objetivo é encontrar o maior número de pares possível.

Entrada

A primeira linha de entrada contém 4 inteiros n, m (1 ≤ n, m ≤ ), x e y (0 ≤ x, y ≤ ) – que representam, respectivamente, a quantidade de pessoas no Grupo A, a quantidade de pessoas no Grupo B e os limites para alturas aceitáveis.

A próxima linha contém n inteiros , indicando as alturas das pessoas do Grupo A (n valores, cada um entre 1 e ).

Na linha seguinte, são fornecidos m inteiros , representando as alturas das pessoas do Grupo B (m valores, cada um entre 1 e ).

Saída

O programa deve imprimir o número máximo de pares que podem ser formados.

Exemplos

Entrada

Saída

6 2 0 0
1 2 3 4 5 6
6 7

1

3 3 1 1
4 5 6
3 4 7

3

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue