스퀘어 게임
시간 제한1초메모리 제한1024 MB
수열이 주어질 때 각 쿼리마다 구간에서 k개의 k를 k^2로 합치는 작업을 최대로 몇 번 할 수 있는지 구한다.
문제
이상의 정수 에 대해, 개의 를 한 개로 바꾸는 작업을 “스퀘어" 라고 하자.
개의 정수 가 주어진다. 다음 쿼리를 처리하는 프로그램을 작성하시오.
- : 수열 에서 가능한 스퀘어의 최대 횟수를 구하여 출력한다.
예를 들어, 수열 에서 개의 를 로 바꾸는 작업을 두 번 하고 나면 가 되어 개의 를 으로 바꿀 수 있어 총 번의 스퀘어가 가능하고, 수열에서 가능한 스퀘어의 최대 횟수는 이다.
입력
파일의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 가 주어지고,
이후 차례로 개의 테스트 케이스가 주어진다. ()
각 테스트 케이스의 첫 줄에는 정수 이 주어진다 ().
다음줄에는 개의 정수 가 공백으로 구분되어 주어진다. ()
다음 줄에는 쿼리의 개수를 나타내는 정수 가 주어진다 ().
다음 개 줄의 번째 줄에는 번째 쿼리를 나타내는 두 정수 가 공백으로 구분되어 주어진다. ()
출력
각 테스트 케이스마다 첫 줄에는 “Case #”를 출력하여야 한다. 이때 는 테스트 케이스의 번호이다.
다음 개 줄에는 가능한 스퀘어의 최대 횟수를 출력한다.