Submission #1361000

#TimeUsernameProblemLanguageResultExecution timeMemory
1361000Jawad_Akbar_JJRoad Closures (APIO21_roads)C++17
12 / 100
22 ms6200 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
#define ll long long
const int N = 1<<17;
ll dp[N][2];

vector<ll> sub1(int n, vector<int> U, vector<int> V, vector<int> W){
	sort(rbegin(W), rend(W));

	vector<ll> Ans(n, 0);
	for (int i : W)
		Ans[0] += i;
	for (int i=1;i<=W.size();i++)
		Ans[i] = Ans[i-1] - W[i-1];
	return Ans;
}

vector<ll> sub2(int n, vector<int> U, vector<int> V, vector<int> W){
	vector<ll> Ans(n, 0);
	for (int i : W)
		Ans[0] += i;

	for (int i=1;i<n;i++){
		dp[i][1] = dp[i-1][0];
		dp[i][0] = min(dp[i-1][0], dp[i-1][1]) + W[i-1];
	}
	Ans[1] = min(dp[n-1][0], dp[n-1][1]);
	return Ans;
}

vector<ll> minimum_closure_costs(int n, vector<int> U, vector<int> V, vector<int> W){
	bool t = 1;
	for (int i=0;i<n-1;i++)
		t &= U[i] == 0;

	if (t)
		return sub1(n, U, V, W);
	return sub2(n, U, V, W);
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...