최근 자바스크립트를 공부한 효석이는 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≤N≤100,000)
둘째 줄에 프로그램이 가지고 시작하는 배열 A의 원소 A_i가 공백으로 구분되어 주어진다. (1≤A_i≤100,000)
셋째 줄에 명령의 개수 Q가 주어진다. (1≤Q≤100,000)
넷째 줄부터 Q+3번째 줄 까지 한 줄에 하나씩 명령이 주어진다. 하나의 명령은 명령의 종류, 연산자, 정수 x 3개의 입력이 공백으로 구분되어 주어진다.
명령의 종류가 map인 경우 아래의 제한이 적용된다.
명령의 종류가 filter인 경우 아래의 제한이 적용된다.
명령을 처리하는 과정에서 0≤A_i≤263−1임이 보장된다.
filter 명령을 수행할 때마다 filter 명령으로 반환받은 배열의 원소의 개수를 출력한다.