직교 폐포
시간 제한2초메모리 제한64 MB
이진 문자열 S의 두 원형 이동을 XOR한 결과들의 집합에 문자열 T가 속하는지, n이 5000까지인 상황에서 효율적으로 판별해야 합니다.
문제
길이가 같은 두 이진 문자열 와 (길이 )의 직교 합(orthogonal sum)은 로 정의되는 문자열 이다. 여기서 는 배타적 논리합(XOR)으로, 두 문자가 같으면 을, 다르면 을 반환한다.
길이가 인 이진 문자열 에 대해, 를 의 번째 순환 이동(circular shift)이라 하자. 이는 의 마지막 개 문자를 문자열의 맨 앞으로 옮기는 연산이다. 예를 들어 abcde의 2번째 순환 이동은 deabc이다.
의 직교 폐포(orthogonal closure)는 로 표기하며, 인 모든 문자열 들의 집합이다.
길이가 같은 이진 문자열 가 주어졌을 때, 가 에 속하는지 판별하시오.
입력
첫째 줄에 문자열 가, 둘째 줄에 문자열 가 주어진다. 두 문자열의 길이는 서로 같으며 이상 이하이고, 각 문자는 0 또는 1이다.
출력
가 에 속하면 Yes를, 그렇지 않으면 No를 출력한다.