다이나믹프로그래밍(DP)

백준 12847번: 꿀 아르바이트

cepiloth 2020. 11. 27. 12:05
반응형

www.acmicpc.net/problem/12847

 

12847번: 꿀 아르바이트

월세를 내기 바로 전 날 까지 인 n (0 < n ≤ 100,000) 일과 일을 할 수 있는 날 m (0 ≤ m ≤ n) 일이 주어진다. 그 다음 줄 에는 1일부터 n일 까지 일급 Ti가 순서대로 주어진다. (0 < Ti ≤ 1,000,000)

www.acmicpc.net

 

백준 12847번 꿀 아르바이트.pptx
0.04MB

 

#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
#include <functional>
#include <vector>
#include <list>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <stack>
#include <math.h>
#include <memory.h>
using namespace std;
 
#define MAX_SIZE 100
#define INF 0x7fffffff
#define CENDL "\n"
#define ll long long
 
#define c_reverse(s) reverse(s.begin(), s.end())
#define c_sort(s) sort(s.begin(), s.end())
 
#define print_vector(v) for(int i=0; i<v.size(); i++) cout << v[i];
 
int main() {
 
    cin.tie(0);
    std::ios::sync_with_stdio(false);
 
 
    int n, m; cin >> n >> m;
    vector<long long> arr(n+1);
    for (int i = 1; i < n+1; i++) {
        cin >> arr[i];
        arr[i] = arr[i - 1] + arr[i];
    }
 
    long long sol = 0;
    for (int i = m; i < n+1; i++) {
        long long cand = arr[i] - arr[i - m];
 
        if (cand > sol) {
            sol = cand;
        }
    }
 
    cout << sol << CENDL;
    return 0;
}

 

 

반응형