답안 #1017528

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1017528 2024-07-09T08:40:09 Z vjudge1 Feast (NOI19_feast) C++17
26 / 100
117 ms 13916 KB
#include<bits/stdc++.h>
using namespace std;
#ifdef ONPC
#include"debug.h"
#else
#define debug(...) 42
#endif
#define endl '\n'
#define ll long long
#define pii pair<int,int>
#define F first
#define S second
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) a.begin(),a.end()
template<class T> bool ckmin(T& a, const T& b) { return b < a ? a = b, 1 : 0; }
template<class T> bool ckmax(T& a, const T& b) { return a < b ? a = b, 1 : 0; }
const int mod = 1e9 + 7;
const int MAXN = 1e6 + 15;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
int a[MAXN], n, k;
pair<ll, int> dp[MAXN][2];
pii solve(ll lampda){
	dp[0][1] = {-lampda, 1};
	dp[0][0] = {0, 0};
	for (int i = 1; i <= n; i++){
		dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]);
		dp[i][1] = max(make_pair(dp[i - 1][0].F + a[i] - lampda, dp[i - 1][0].S + 1), 
				make_pair(dp[i - 1][1].F + a[i], dp[i - 1][1].S));
	}
	return max(dp[n][0], dp[n][1]);
}

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin >> n >> k;
	for (int i = 1; i <= n; i++){
		cin >> a[i];
	}
	ll lo = 0, hi = 1e18;
	while (hi - lo > 1){
		ll mi = (lo + hi) >> 1;
		if (solve(mi).second >= k){
			lo = mi;
		} else {
			hi = mi;
		}
	}
	cout << solve(lo).F + k * lo;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 59 ms 10584 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 46 ms 10584 KB Output is correct
2 Correct 47 ms 12124 KB Output is correct
3 Correct 80 ms 11780 KB Output is correct
4 Correct 51 ms 11956 KB Output is correct
5 Correct 52 ms 13344 KB Output is correct
6 Correct 47 ms 11748 KB Output is correct
7 Correct 47 ms 12120 KB Output is correct
8 Correct 53 ms 13648 KB Output is correct
9 Correct 52 ms 13404 KB Output is correct
10 Correct 65 ms 11864 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 86 ms 10840 KB Output is correct
2 Correct 82 ms 13652 KB Output is correct
3 Correct 84 ms 13660 KB Output is correct
4 Correct 82 ms 13648 KB Output is correct
5 Correct 80 ms 13648 KB Output is correct
6 Correct 103 ms 13908 KB Output is correct
7 Correct 109 ms 13904 KB Output is correct
8 Correct 117 ms 13880 KB Output is correct
9 Correct 81 ms 13916 KB Output is correct
10 Correct 81 ms 13828 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 0 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 0 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 0 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 59 ms 10584 KB Output isn't correct
2 Halted 0 ms 0 KB -