Submission #220098

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
2200982020-04-07 01:14:37rama_pangMinerals (JOI19_minerals)C++14
100 / 100
87 ms4260 KiB
#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
int optimal_pivot(int n) {
static int MAXN = 43005;
static vector<pair<int, int>> optimal(MAXN, make_pair(1e8, 1e8));
static bool computed = false;
if (computed) return optimal[n].second;
computed = true;
optimal[0] = optimal[1] = {0, 0};
for (int i = 2; i < MAXN; i++) {
int lo = 1, hi = i / 2;
while (lo < hi) {
int m1 = (lo + hi) / 2;
int m2 = m1 + 1;
int c1 = optimal[m1].first + optimal[i - m1].first + i - 1 + m1;
int c2 = optimal[m2].first + optimal[i - m2].first + i - 1 + m2;
if (c1 < c2) {
hi = m1;
} else {
lo = m2;
}
}
optimal[i] = make_pair(optimal[lo].first + optimal[i - lo].first + lo + i - 1, lo);
}
return optimal_pivot(n);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...