map, filter

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

최근 자바스크립트를 공부한 효석이는 map, filter의 매력에 빠져버렸다. 그래서 map, filter 명령을 처리해주는 새로운 프로그램을 만들었다.

프로그램은 정수로 이루어진 길이 NN인 배열 AA를 가지고 시작한다. 프로그램은 한 줄에 명령의 종류, 연산자, 정수 xx 3개의 입력을 받아서 동작을 수행한다.

프로그램은 아래의 입력을 처리할 수 있다.

  • map 명령

    • map + xx : 배열의 모든 원소에 정수 xx만큼 더해준다.
    • map * xx : 배열의 모든 원소에 정수 xx만큼 곱해준다.
    • map % xx : 배열의 모든 원소를 xx로 나눈 나머지로 바꿔준다.
  • filter 명령

    • filter >= xx : 배열의 원소 중 xx보다 크거나 같은 원소를 가진 새로운 배열을 반환한다.
    • filter <= xx : 배열의 원소 중 xx보다 작거나 같은 원소를 가진 새로운 배열을 반환한다.
    • filter == xx : 배열의 원소 중 xx와 같은 원소를 가진 새로운 배열을 반환한다.

처음 배열 AA와 명령들이 주어졌을 때 filter 명령의 수행 결과로 반환받은 새로운 배열의 길이를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 배열의 길이 NN이 주어진다. (1N100,000)( 1 \leq N \leq 100\\,000 )

둘째 줄에 프로그램이 가지고 시작하는 배열 AA의 원소 A_iA\_{i}가 공백으로 구분되어 주어진다. (1A_i100,000)( 1 \leq A\_{i} \leq 100\\,000 )

셋째 줄에 명령의 개수 QQ가 주어진다. (1Q100,000)( 1 \leq Q \leq 100\\,000 )

넷째 줄부터 Q+3Q+3번째 줄 까지 한 줄에 하나씩 명령이 주어진다. 하나의 명령은 명령의 종류, 연산자, 정수 xx 3개의 입력이 공백으로 구분되어 주어진다.

명령의 종류가 map인 경우 아래의 제한이 적용된다.

  • 1x1001 \leq x \leq 100

명령의 종류가 filter인 경우 아래의 제한이 적용된다.

  • 0x26310 \leq x \leq 2^{63} - 1

명령을 처리하는 과정에서 0A_i26310 \leq A\_{i} \leq 2^{63} - 1임이 보장된다.

출력

filter 명령을 수행할 때마다 filter 명령으로 반환받은 배열의 원소의 개수를 출력한다.