#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
int n;
vector<pair<int, int>> arr;
bool sorting(const pair<int, int>&a, const pair<int, int>&b)
{
return (a.second > b.second);
}
int main()
{
scanf_s("%d", &n);
int data[1001];
memset(data, 0, sizeof(data));
int deadline, score;
for (int i = 1; i <= n; i++)
{
scanf_s("%d %d", &deadline, &score);
arr.push_back({ deadline, score });
}
sort(arr.begin(), arr.end(), sorting);
for (int i = 0; i < n; i++)
{
int temp = arr[i].first;
while (temp >= 1)
{
if (data[temp] == 0)
{
data[temp] = arr[i].second;
break;
}
else
{
temp--;
}
}
}
int result=0;
for (int i = 1; i <= 1000; i++)
{
result += data[i];
}
printf("%d", result);
return 0;
}
'성우리뷰' 카테고리의 다른 글
도둑질(with 비트마스킹, dp) (2) | 2020.09.08 |
---|---|
배낭 (2) | 2020.09.03 |
앱 (2) | 2020.08.21 |
범위가 커졌을 때의 최대 긴 증가수열 (1) | 2020.08.12 |
삼각형 내려가 (2) | 2020.08.12 |