60028 XOR 최대
문제
어떤 문자열에서 연속한 위치에 있는 1개 이상의 문자를 선택해 순서를 유지한 채로 나열해서 얻을 수 있는 문자열을 그 문자열의 부분문자열이라 한다. 예를 들어, 는 의 부분문자열이지만, 의 부분문자열은 아니다.
음이 아닌 두 정수 의 배타적 논리합 는 다음과 같이 정의된다.
- 이진법으로 생각했을 때, 의 의 자릿수와 의 의 자릿수가 서로 다르면 의 의 자릿수가 이고, 같으면 의 의 자릿수가 이다. (단, )
- 예를 들어 은 이므로 이다.
과 로만 구성된 길이가 인 문자열 가 주어진다.
당신은 의 부분문자열 를 선택해서 만들 수 있는 의 최댓값을 계산해야 한다. 는 다음과 같이 정의되는 함수이다:
- 의 부분문자열 에 대해, 의 값은 를 이진법으로 해석했을 때의 값이다. 예를 들어, 만약 이면 이다.
- 는 과 의 배타적 논리합이다.
이때 과 가 서로 다를 필요는 없다. 즉, 과 는 에서 일부가 겹쳐도 되고, 완전히 같은 문자열이어도 된다.
과 로만 구성된 문자열 가 주어지면, 가능한 의 최댓값을 구하는 프로그램을 작성하라.
입력
첫 번째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스마다, 첫 번째 줄에 문자열의 길이 , 두 번째 줄에 과 로만 구성된 길이가 인 문자열 가 주어진다.
출력
각 테스트 케이스마다 가능한 의 최댓값을 이진법으로 한 줄에 하나씩 출력한다. 단, 정답 앞에 필요 없는 은 출력하지 않는다.
제한
- 주어지는 모든 수는 정수이다.
- 모든 테스트 케이스에서 의 합
- 는 과 로만 이루어진 길이가 인 문자열이다.
서브태스크
| 1 | 17 | , 모든 테스트 케이스에서 의 합 |
|---|---|---|
| 2 | 20 | , 모든 테스트 케이스에서 의 합 |
| 3 | 13 | , 모든 테스트 케이스에서 의 합 |
| 4 | 12 | , 모든 테스트 케이스에서 의 합 |
| 5 | 38 | 추가 제약 조건 없음. |
예제 입출력
예제 입력 1
4
3
010
5
10101
5
00100
5
11111
예제 출력 1
11
11111
110
11110
예제 입력 2
4
2
00
2
01
2
10
2
11
예제 출력 2
0
1
11
10
출처
올림피아드 › 한국정보올림피아드 › KOI 2024 2차 › 중등부 3번 › 고등부 2번
solution.cpp
에디터 불러오는 중...