#include <stdio.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> using namespace std; int N, K; int arr[1000010]; int main(void) { // freopen("B15565_input.txt", "r", stdin); cin >> N >> K; for(int i = 1; i <= N; i++) { cin >> arr[i]; } int left = 1; int right = 1; int lionCnt = 0; int Min = 99999999; while(left <= right && right <= N+1) { if(lionCnt < K) { if(arr[right] == 1) { lionCnt++; right++; } else { right++; } } else if(lionCnt > K) { if(arr[left] == 1) { lionCnt--; left++; } else { left++; } } else if(lionCnt == K) { if(Min > right-left) { Min = right-left; } if(arr[left] == 1) { lionCnt--; left++; } else { left++; } } } if(Min == 99999999) { cout << -1; } else { cout << Min; } return 0; } | cs |
'Baekjoon > etc' 카테고리의 다른 글
[백준 2018] 수들의 합 5 (Two Pointer) (C/C++) (2) | 2020.03.30 |
---|---|
[백준 1484] 다이어트 (Two Pointer) (C/C++) (0) | 2020.03.30 |
[백준 2003] 수들의 합 2 (Two Pointer) (C/C++) (0) | 2020.03.29 |
[백준 1476] 날짜 계산 (C/C++) (0) | 2020.03.23 |
[백준 1213] 팰린드롬 만들기 (C/C++) (0) | 2020.03.23 |