문제
*본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제이다.
정올은 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었다.
이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였다.
* 코딩테스트 참여 개발언어 항목에 cpp, java, python 중 하나를 선택해야 한다.
* 지원 직군 항목에 backend와 frontend 중 하나를 선택해야 한다.
* 지원 경력구분 항목에 junior와 senior 중 하나를 선택해야 한다.
* 선호하는 소울푸드로 chicken과 pizza 중 하나를 선택해야 한다.
인재영입팀에 근무하고 있는 커미는 코딩테스트 결과를 분석하여 채용에 참여한 개발팀들에 제공하기 위해
지원자들의 지원조건을 선택하면 해당 조건에 맞는 지원자가 몇 명인지 쉽게 알 수 있는 프로그램을 만들고 있다.
예를 들어 다음과 같은 질의에 답하는 프로그램을 만들고자 한다.
* 코딩테스트에 java로 참여했으며, backend 직군을 선택했고, junior 경력이면서, 소울푸드로 pizza를
선택한 사람 중 코딩테스트 점수를 50점 이상 받은 지원자는 몇 명인가?
* 코딩테스트에 python으로 참여했으며, frontend 직군을 선택했고, senior 경력이면서,
소울푸드로 chicken을 선택한 사람 중 코딩테스트 점수를 100점 이상 받은 사람은 모두 몇 명인가?
* 코딩테스트에 cpp로 참여했으며, senior 경력이면서, 소울푸드로 pizza를 선택한 사람 중
코딩테스트 점수를 100 점 이상 받은 사람은 몇 명인가?
* backend직군을 선택했고, senior 경력이면서 코딩테스트 점수를 200점 이상 받은 사람은 모두 몇 명인가?
* 소울푸드로 chicken을 선택한 사람 중 코딩테스트 점수를 250점 이상 받은 사람은 모두 몇 명인가?
* 코딩테스트 점수를 150점 이상 받은 사람은 모두 몇 명인가?
즉, 개발팀에서 궁금해하는 내용은 다음과 같은 형태를 갖는다.
[조건]을 만족하는 사람 중 코딩테스트 점수를 X점 이상 받은 사람은 모두 몇 명인가?
주어진 정보를 이용하여 위 형식의 질문에 답하는 프로그램을 작성하시오.
입력
첫 행에 코딩테스트 응시생의 수 N이 주어진다. ( 1 <= N <= 50,000)
다음 N개의 행에 각 응시생의 프로필이 "개발언어 직군 경력 소울푸드 점수" 형식으로 주어진다.
- 개발 언어는 cpp, java, python 중 하나이다.
- 직군은 backend, frontend 중 하나이다.
- 경력은 junior, senior 중 하나이다.
- 소울푸드는 chicken, pizza 중 하나이다.
- 점수는 코딩테스트 점수를 의미하며 1이상 100,000이하의 자연수이다.
다음 행에 쿼리의 수 Q가 주어진다. (1 <= Q <= 100,000)
다음 Q개의 행에 "개발언어 and 직군 and 경력 and 소울푸드 점수X"형식의 쿼리가 주어진다.
- 개발언어는 cpp, java, python 중 하나이다.
- 직군은 backend, frontend 중 하나이다.
- 경력은 junior, senior 중 하나이다.
- 소울푸드는 chicken, pizza 중 하나이다.
- '-'표시는 해당 조건을 고려하지 않겠다는 의미이다.
- 점수X는 코딩테스트 점수를 의미하며 조건을 만족하는 사람 중
X점 이상 받은 사람은 모두 몇 명인지를 의미한다.
- 각 단어는 공백문자(스페이스 바) 하나로 구분되어 있다.
- 예를 들면, "cpp and - and senior and pizza 500"은
"cpp로 코딩테스트를 봤으며, 경력은 senior 이면서 소울푸드로 pizza를 선택한 지원자 중
코딩 테스트 점수를 500점 이상받은 사람은 모두 몇 명인가?"를 의미한다.
출력
각 질의 순서대로 답을 구하여 행 단위로 출력한다.
예제
6
java backend junior pizza 150
python frontend senior chicken 210
python frontend senior chicken 150
cpp backend senior pizza 260
java backend junior chicken 80
python backend senior chicken 50
6
java and backend and junior and pizza 100
python and frontend and senior and chicken 200
cpp and - and senior and pizza 250
- and backend and senior and - 150
- and - and - and chicken 100
- and - and - and - 150
1
1
1
1
2
4