Submission #1244245

#TimeUsernameProblemLanguageResultExecution timeMemory
1244245amine_aroua메기 농장 (IOI22_fish)C++20
0 / 100
24 ms15180 KiB
#include "fish.h"

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void chmax(ll &a , ll b)
{
	a = max(a , b);
}
const ll INF = 1e18;
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y,
						std::vector<int> W) 
{
	vector<ll> val(N+1);
	for(int i = 0 ;i < M ; i++)
	{
		val[X[i]+1] = W[i];
	}
	ll ans = 0;
	vector<vector<vector<vector<ll>>>> dp(2 , vector<vector<vector<ll>>>(2 , vector<vector<ll>>(2 ,vector<ll>(N+1 , -INF))));
	for(int i = 0 ; i < 2 ; i++)
	{
		for(int j = 0 ; j < 2 ; j++)
		{
			dp[i][0][j][0] = 0;
		}
	}
	for(int i = 1 ; i <= N ; i++)
	{
		for(int b = 0 ;b < 2 ; b++)
		{
			for(int a = 0  ; a < 2 ;a++)
			{
				for(int cur = 0 ; cur< 2 ;cur++)
				{
					ll add = 0;
					if((b || a ) && cur == 0)
						add = val[i];
					for(int bb = 0 ; bb < 2 ; bb++)
					{
						chmax(dp[b][cur][a][i] , dp[bb][b][cur][i - 1] + add);
						if(i == N)
							ans = max(ans , dp[b][cur][a][i]);
					}
				}
			}
		}
	}
	return ans;
}



#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...