#include <iostream>
#include <vector>
 
int main()
{
    int N = 0;
    int X = 0;
    int iSum = 0;
    int iMax = 0;
    std::cin >> N >> X;
 
    std::vector<int> arr(N);
 
    for (int i = 0; i < X; ++i) 
    {
        std::cin >> arr[i];
        iSum += arr[i];
    }
 
    iMax = iSum;
    int iCount = 0;
 
    if (iMax)
        ++iCount;
 
    for (int i = X; i < N; ++i) 
    {
        std::cin >> arr[i];
        iSum = iSum + arr[i] - arr[i - X];
 
        if (iSum > iMax)
        {
            iMax = iSum;
            iCount = 1;
        }
 
        else if (iSum == iMax) 
            ++iCount;
    }
 
    if (!iMax) 
        std::cout << "SAD";
    else 
        std::cout << iMax << "\n" << iCount;
 
    return 0;
}

슬라이스로 지나가면서 푸는 문제

'오늘의 알고리즘' 카테고리의 다른 글

[C++] 백준 2164 카드2  (0) 2022.06.12
[C++] 백준 2075 N번째 큰 수  (0) 2022.06.11
[C++] 백준 9655 돌 게임  (0) 2022.06.09
[C++] 백준 1927 최소 힙  (0) 2022.06.08
[C++] 백준 1976 여행 가자  (0) 2022.06.08

+ Recent posts