팰린드롬 판별하기

시간 제한1초메모리 제한1024 MB

요약
숨겨진 수열이 팰린드롬인지 판별하는 문제로, 두 종류의 질의 기계를 사용하며 find_character에 넘기는 인덱스 목록 크기의 합이 N 이하여야 한다.
난이도

보통10점 중 7점

유형
구현, 수학, 조합론
정답자
아직 제출이 없습니다

문제

KOI사에서는 알고리즘 대회를 홍보하기 위한 새로운 이벤트를 만들었다! 이벤트에 참가하기 위해서는 KOI사만이 알고 있는 비밀 수열 SS가 팰린드롬인지 판별해야 한다.

수열을 뒤집었을 때의 결과가 원래의 수열과 같아지는 수열을 팰린드롬이라고 한다. 즉, 길이가 NN인 수열 SS가 팰린드롬이라는 것은, 모든 0≤i≤N−10 ≤ i ≤ N - 1에 대해 S\[i]=S\[N−1−i]S\[i] = S\[N - 1 - i]이라는 것과 같다. 예를 들어, \[1,2,3,2,1]\[1, 2, 3, 2, 1], \[1,2,2,1]\[1, 2, 2, 1]은 팰린드롬이지만 \[1,2,3,1]\[1, 2, 3, 1], \[1,2,2]\[1, 2, 2]는 팰린드롬이 아니다.

당신은 처음에 비밀 수열 SS의 길이 NN을 알고 있다. 또한, SS는 11 이상 5,0005\\, 000 이하의 정수로 이루어진 수열임도 알고 있다. 이벤트 참가자들을 돕기 위해, KOI사는 특별 제작한 두 가지 기계를 제공한다.

  • count_pair 기계에는 서로 다른 세 개의 수 xx, yy, zz를 입력해야 한다. 이때 기계는 S\[x]S\[x], S\[y]S\[y], S\[z]S\[z] 중 같은 쌍의 개수를 반환한다. 예를 들어, S\[x]=S\[y]=S\[z]S\[x] = S\[y] = S\[z] 일 경우 기계는 3을 반환한다.
  • find_character 기계에는 하나의 정수 xx와 정수들의 목록 YY를 입력해야 한다. 이때 기계는 S\[x]=S\[y]S\[x] = S\[y]인 yy가 목록 YY에 있다면 11, 없으면 00을 반환한다.
  • 두 가지 기계에 입력되는 모든 수는 반드시 00 이상 N−1N - 1 이하의 정수여야 한다.
  • find_character 기계에 입력한 YY의 크기의 합은 NN 이하여야 한다.

당신은 적은 횟수로 기계를 사용하여 비밀 수열 SS가 팰린드롬인지 판별해야 한다.

제한

  • 5≤N≤5,0005 ≤ N ≤ 5\\, 000
  • 1≤S\[i]≤5,0001 ≤ S\[i] ≤ 5\\, 000 (모든 0≤i≤N−10 ≤ i ≤ N - 1)
  • 한 개의 테스트 케이스에서 주어지는 NN의 합을 MM이라 할 때, 5≤M≤5,0005 ≤ M ≤ 5\\, 000

이 문제에서 그레이더는 적응적이지 않다(NOT adaptive). 이것은 SS가 그레이더의 수행 초기에 고정되어 쿼리에 따라 변하지 않음을 의미한다.

예제

이 문제는 공개된 예제가 없습니다.