백준문제풀이

백준 문제 24499번 blobyum 문제풀이 c++

노가다 김씨 2022. 3. 7. 22:01

https://www.acmicpc.net/problem/24499

 

24499번: blobyum

4번 애플파이와 1번 애플파이를 먹으면 총 맛의 합이 9이고, 이가 최댓값이다.

www.acmicpc.net

 

문제해석

 

 

누적합 문제임을 쉽게 알아 차리는것이 가능한데 단, 선형이 아닌 원형임을 인지하고있어야한다.

그래서 N의 입력이 최대 100000이므로 그것의 두배 정도의 배열에 누적합을 저장해놓으면 메모리의 낭비는 생기지만

편하게 코드를 작성 할 수있다.

어렵지 않으므로 별도의 설명없이 코드만 보아도 쉽게 이해 가능할 것 같다.

 

코드

#include <iostream>
#include <algorithm>
using namespace std;
int a[200002];
int sum[200002];
int ans=0;
int main(){
    cout.tie(NULL);
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    int n,k;
    cin>>n>>k;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
    }
    for(int i=1; i<=n; i++)
    {
        a[i+n]=a[i];
    }
    sum[1]=a[1];
    for(int i=2; i<=2*n; i++)
    {
        sum[i]=sum[i-1]+a[i];
    }
    for(int i=k; i<=2*n; i++)
    {
        ans=max(ans,sum[i]-sum[i-k]);
    }
    cout<<ans;
}