시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB202322616.561%

문제

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

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

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

  • map 명령
    • map + $x$ : 배열의 모든 원소에 정수 $x$만큼 더해준다.
    • map * $x$ : 배열의 모든 원소에 정수 $x$만큼 곱해준다.
    • map % $x$ : 배열의 모든 원소를 $x$로 나눈 나머지로 바꿔준다.
  • filter 명령
    • filter >= $x$ : 배열의 원소 중 $x$보다 크거나 같은 원소를 가진 새로운 배열을 반환한다.
    • filter <= $x$ : 배열의 원소 중 $x$보다 작거나 같은 원소를 가진 새로운 배열을 반환한다.
    • filter == $x$ : 배열의 원소 중 $x$와 같은 원소를 가진 새로운 배열을 반환한다.

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

입력

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

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

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

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

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

  • $1 \leq x \leq 100$

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

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

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

출력

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

예제 입력 1

5
5 3 4 1 2
7
map + 4
filter >= 7
map * 3
filter >= 22
filter <= 22
map % 5
filter >= 2

예제 출력 1

3
2
3
3

출처

University > 한양대학교 ERICA 캠퍼스 > Zero One Algorithm Contest 2022 G번