Submission #1231577

#TimeUsernameProblemLanguageResultExecution timeMemory
1231577nicolo_010메기 농장 (IOI22_fish)C++20
3 / 100
52 ms11336 KiB
#include <bits/stdc++.h>
#include "fish.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;
template <typename T>
using v = vector<T>;
#define rep(i, k, n) for (int i = k; i < n; i++)

ll max_weights(int N, int M, v<int> X, v<int> Y, v<int> W) {
	v<ll> a(N, 0);
	rep(i, 0, M) {
		a[X[i]] += W[i];
	}
	ll dp[N][2][2];
	rep(i, 0, 2) {
		rep(j, 0, 2) {
			dp[0][i][j] = 0;
			dp[1][i][j] = 0;
		}
	}
	rep(i, 2, N) {
		dp[i][0][0] = max(dp[i-1][0][0], dp[i-1][0][1]);
		dp[i][1][0] = max(dp[i-1][0][0], dp[i-1][0][1]) + (i == 2 ? a[i-2] : 0) + (i == N-1 ? a[N-1] : 0);
		dp[i][0][1] = max(dp[i-1][1][0], dp[i-1][1][1]) + a[i-1];
		dp[i][1][1] = max(dp[i-1][1][1], dp[i-1][1][0]) + (i == N-1 ? a[N-1] : 0);
	}
	ll mx = 0;
	rep(i, 0, 2) rep(j, 0, 2) mx = max(mx, dp[N-1][i][j]);
	return mx;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...