포럼
문제 USACO0680

슬라이딩 윈도우 합

설명

베시는 숨겨진 이진 문자열 \(b_1b_2\dots b_N\) (\(1\le N\le 2\cdot 10^5\))을 가지고 있다. \(b\)에 대해 주어지는 유일한 정보는 이진 문자열 \(r_1r_2\dots r_{N-K+1}\) (\(1 \le K \le N\))이며, 여기서 \(r_i\)는 가장 왼쪽 인덱스가 \(i\)\(b\)의 길이 \(K\) 윈도우 안에 있는 1의 개수를 2로 나눈 나머지이다.

베시의 숨겨진 이진 문자열에 있을 수 있는 1의 개수의 최솟값과 최댓값을 출력하라.

Problem credits: Benjamin Qi

제약

SCORING

  • 입력 2: \(N\le 8\)
  • 입력 3-4: \(K\le 8\)이고 모든 테스트에 걸친 \(N\)의 합이 \(10^4\)를 넘지 않는다.
  • 입력 5-11: 추가 제약 없음.

Problem credits: Benjamin Qi

입력 형식

풀어야 할 독립적인 테스트 케이스가 \(T\) (\(1\le T\le 10^3\))개 있다. 각 테스트는 다음과 같이 주어진다.

첫째 줄에 \(N\)\(K\)가 주어진다.

둘째 줄에 이진 문자열 \(r_1\dots r_{N-K+1}\)이 주어지며, 여기서 \(r_i=\sum_{j=i}^{j+K-1}b_j\pmod{2}\)이다.

모든 테스트에 걸친 \(N\)의 합이 \(10^6\)을 넘지 않음이 보장된다.

출력 형식

각 테스트 케이스에 대해, 베시의 숨겨진 이진 문자열에 있을 수 있는 1의 개수의 최솟값과 최댓값을 공백 하나로 구분하여 출력한다.

예제 1
입력
7
5 1
10011
5 2
1001
5 3
100
5 5
0
5 5
1
4 4
1
5 2
0000
출력
3 3
2 3
1 4
0 4
1 5
1 3
0 5
설명

For the first test case, \(K=1\) means that \(r=b\), and the number of ones in \(r\)
is \(3\).

For the second test case, there are two possibilities for \(b\): 10001 and 01110,
having \(2\) and \(3\) ones, respectively.

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2025-2026 > First Contest > Silver

태그

평가 및 의견

Sliding Window Summation

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Sliding Window Summation

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8