반응형

 

 

<코드>

#include<iostream>
#include<algorithm>
#include<deque>
using namespace std;

int N, x, ans;
deque<int> dq;

void solve(int now, int sum)
{
	if (dq.size() == 2)
	{
		ans = max(ans, sum);
		return;
	}
	
	int size = dq.size();

	for (int i = 1; i < size - 1; i++)
	{
		int next = dq[i];
		dq.erase(dq.begin() + i);
		solve(next, sum + dq[i - 1] * dq[i]);
		dq.insert(dq.begin() + i, next);
	}
}

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

	cin >> N;

	for (int i = 0; i < N; i++)
	{
		cin >> x;
		dq.push_back(x);
	}
		
	for (int i = 1; i < N - 1; i++)
	{
		solve(i, 0);
	}
	
	cout << ans;
}

 

 

 

www.acmicpc.net/problem/16198

 

16198번: 에너지 모으기

N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있

www.acmicpc.net

 

반응형

+ Recent posts