제출 #230972

#제출 시각아이디문제언어결과실행 시간메모리
230972peijarStove (JOI18_stove)C++17
50 / 100
60 ms82664 KiB
#include <bits/stdc++.h>
using namespace std;

#define SZ(v) ((int)(v).size())
using ll = long long;

const int MAXN = 5001;

ll dp[MAXN][MAXN];

int main(void)
{
	ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

	int nb_personnes, nb_allumetes;
	cin >> nb_personnes >> nb_allumetes;

	vector<int> arrivees(nb_personnes);
	for (auto &v : arrivees)
		cin >> v;
	arrivees.push_back(arrivees.back()+1);
	for (int k(0); k <= nb_allumetes; ++k)
		dp[nb_personnes][k] = 0;
	for (int id_per(nb_personnes-1); id_per >= 0; --id_per)
	{
		dp[id_per][0] = (ll)1e18;
		for (int nb_allu(1); nb_allu <= nb_allumetes; ++nb_allu)
			dp[id_per][nb_allu] = min(arrivees[id_per+1] - arrivees[id_per] + dp[id_per+1][nb_allu], 
										(nb_allu ? 1 + dp[id_per+1][nb_allu-1] : (ll)1e18));
	}

	cout << dp[0][nb_allumetes] << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...