/* _ _ ___ __ ___ ___ _ _ ___ __ ___ _ _ ___ ___ __ _____ _ _ ___ */
/* | || | /_\ \ / / / __|/ _ \| \| |/ __| \ \ / /_\ | | | |/ _ \ / __| \ \ / / _ \| \| |/ __| */
/* | __ |/ _ \ V / \__ \ (_) | .` | (_ | \ V / _ \ | |_| | (_) | (__ \ V / (_) | .` | (_ | */
/* |_||_/_/_\_\_|___|___/\___/|_|\_|\___| \_/_/_\_\ _\___/ \___/ \___| _ \_/_\___/|_|\_|\___| ___ */
/* | \| __| |_ _| || | /_\ \ / / | \ / _ \_ _| | \/ | __| \| | || | | \/ |/ _ \| \| |/ __| */
/* | |) | _| | | | __ |/ _ \ V / | |) | (_) | | | |\/| | _|| .` | __ | | |\/| | (_) | .` | (_ | */
/* |___/|___| |_| |_||_/_/ \_\_| |___/ \___/___| |_| |_|___|_|\_|_||_| |_| |_|\___/|_|\_|\___| */
#include <bits/stdc++.h>
using namespace std;
/*
run
g++ A_MORNING_16_6_25.cpp -o run.exe && ./run.exe
g++ A_MORNING_16_6_25.cpp -std=c++1y -o run.exe && ./run.exe
*/
#define int long long
// CONSTANTs
const int MAXN = 1000009;
// GIVEN
int N;
pair<int, int> A[MAXN];
// VARIABLEs
// pair<int, int> nen[MAXN << 1];
int maxH[5000009];
int maxX = 0;
// FUNCTIONs
// void compress() {
// int tmp = 1;
// sort(nen + 1, nen + 1 + N + N);
// if (nen[1].second <= N) A[nen[1].second].first = 1;
// else A[nen[1].second - N].second = 1;
// for (int i = 2; i <= N + N; ++i) {
// tmp += nen[i].first != nen[i - 1].first;
// if (nen[i].second <= N) A[nen[i].second].first = tmp;
// else A[nen[i].second - N].second = tmp;
// }
// }
void maximise(int &abc, int xyz) {
if (abc < xyz) abc = xyz;
}
// MAIN
signed main() {
ios_base::sync_with_stdio(1+1==3);
cin.tie(nullptr); cout.tie(nullptr);
srand((unsigned int)time(nullptr));
cin >> N;
for (int i = 1; i <= N; ++i) {
cin >> A[i].first >> A[i].second;
maximise(maxH[A[i].first >> 1], A[i].second);
maximise(maxX, A[i].first >> 1);
// cin >> nen[i].first >> nen[i + N].first;
// nen[i].second = i;
// nen[i + N].second = N + i;
}
// compress();
for (int i = maxX; i; --i) {
maximise(maxH[i - 1], maxH[i]);
}
unsigned long long res = 0;
for (int i = 1; i <= maxX; ++i) res += 2ll * maxH[i];
cout << res;
cerr << "\nTime elapsed: " << (1.0 * clock() / CLOCKS_PER_SEC) << " s.";
}
/*
Rubi-channnnn~~~
Haiiii~~~
Nani ga suki?
Choco minto... yori mo anata~
Ayumu-channnnn~~~
Haiiiii~~~
Nani ga suki?
Suturuberi fureiba yori mo anata~
Shiki-channnn~~~
Haiiiii~~~~
Nani ga suki?
Kukkie ando krimu yori mo anata~
Minaaaa~~~
Haiiiiii~~~
Nani ga suki?
Mochrion daisuki AI♡SCREAM
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |