본문 바로가기
IT/BOJ

백준(BOJ) 16169 수행시간 *

by 빨강자몽 2018. 10. 4.

# DP


#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int n;
pair<int, int> node[101];
vector<int> v[102];
int ans;
int dp[101];
int main()
{
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		scanf("%d %d", &node[i].first, &node[i].second);
		v[node[i].first].push_back(i);
	}
	for (int i = 1; i <= n; i++)
	{
		if (v[i].empty() == true)
			continue;
		if (v[i + 1].empty() == true)
		{
			for (auto & j : v[i])
			{
				int tmp = dp[j] + node[j].second;
				ans = max(ans,tmp);
			}
			continue;
		}
		for (auto & j : v[i])
		{
			for (auto & k : v[i + 1])
			{
				dp[k] = max(dp[k], dp[j] + node[j].second + (k - j)*(k - j));
				ans = max(ans, dp[k]);
			}
		}
	}
	printf("%d", ans);
	return 0;
}



'IT > BOJ' 카테고리의 다른 글

백준(BOJ) 16174 점프왕 젤리 **  (0) 2018.10.04
백준(BOJ) 16172 나는 친구가 적다 **  (0) 2018.10.04
백준(BOJ) 16168 퍼레이드 **  (0) 2018.10.04
백준(BOJ) 16167 A Great Way *  (0) 2018.10.04
백준(BOJ) 16166 서울의 지하철 *  (0) 2018.10.04