728x90
반응형

29767번: 점수를 최대로
문제
https://www.acmicpc.net/problem/29767
29767번: 점수를 최대로
단대소프트고에는 교실 $N$개가 있다. 교실은 $1$번부터 $N$번까지 $1, 2, \ldots, N$ 순서로 연달아 있다. 학교 밖에는 $K$명의 학생들이 있다. $K$명의 학생은 학교에 들어가기 전 학생마다 목적지 교실
www.acmicpc.net
풀이
목적지 i번 교실에 도착하면 1~i번 방의 점수를 얻습니다. 즉, 누적합 배열로 i번 교실을 목표로 했을 시 얻는 점수를 저장합니다. K명의 학생들은 서로 다른 목적지를 가지므로 누적합 배열을 내림차순 정렬하고 앞에서부터 K개 원소의 합을 출력하면 됩니다.
코드
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
ll n, k, ans = 0;
cin >> n >> k;
vector<ll> a(n + 1, 0);
for (int i = 1; i <= n; i++) {
cin >> a[i];
a[i] += a[i - 1];
}
sort(a.begin(), a.end(), greater<>());
for (int i = 0; i < k; i++)
ans += a[i];
cout << ans;
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 24263 알고리즘 수업 - 알고리즘의 수행 시간 2 (1) | 2023.09.14 |
---|---|
[백준 / BOJ] C++ 24262 알고리즘 수업 - 알고리즘의 수행 시간 1 (0) | 2023.09.14 |
[백준 / BOJ] C++ 29766 DKSH 찾기 (1) | 2023.09.13 |
[백준 / BOJ] C++ 29158 큰 수 만들기 게임 (54) | 2023.09.05 |
[백준 / BOJ] C++ 29160 나의 FIFA 팀 가치는? (2) | 2023.09.05 |