提出 #71513651
ソースコード 拡げる
#include <bits/stdc++.h>
typedef long long valueType;
typedef std::vector<valueType> ValueVector;
typedef std::vector<ValueVector> ValueMatrix;
typedef std::vector<ValueMatrix> ValueCube;
typedef std::string string;
typedef std::vector<string> StringVector;
typedef std::vector<bool> bitset;
typedef std::vector<bitset> BitMatrix;
typedef std::pair<valueType, valueType> ValuePair;
typedef std::vector<ValuePair> PairVector;
typedef std::vector<PairVector> PairMatrix;
typedef std::tuple<valueType, valueType, valueType> ValueTuple;
typedef std::vector<ValueTuple> TupleVector;
typedef std::vector<TupleVector> TupleMatrix;
typedef std::set<valueType> ValueSet;
typedef std::stack<valueType> ValueStack;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.tie(nullptr);
valueType N;
std::cin >> N;
ValueVector P(N + 1);
for (valueType i = 1; i <= N; ++i)
std::cin >> P[i];
ValueVector LeftSon(N + 1, 0), RightSon(N + 1, 0);
// 建立笛卡尔书 利用单调栈
ValueVector stack(N + 1, 0);
for (valueType i = 1, top = 0; i <= N; ++i) {
valueType k = top;
while (k > 0 && P[stack[k]] < P[i])
--k;
if (k > 0)
RightSon[stack[k]] = i;
if (k < top)
LeftSon[i] = stack[k + 1];
stack[++k] = i;
top = k;
}
PairMatrix Tree(N + 1);
for (valueType i = 1; i <= N; ++i) {
if (LeftSon[i])
Tree[i].emplace_back(LeftSon[i], std::abs(i - LeftSon[i]));
if (RightSon[i])
Tree[i].emplace_back(RightSon[i], std::abs(i - RightSon[i]));
}
auto Dfs = [&](auto &self, valueType const x) -> valueType {
valueType ans = 0;
for (auto const &[v, w] : Tree[x])
ans = std::max(ans, self(self, v) + w);
return ans;
};
valueType root = 1;
for (valueType i = 1; i <= N; ++i) {
if (P[i] > P[root])
root = i;
}
std::cout << Dfs(Dfs, root) << std::endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Cat exercise |
| ユーザ | UserUnauthorized |
| 言語 | C++23 (Clang 21.1.0) |
| 得点 | 550 |
| コード長 | 2139 Byte |
| 結果 | AC |
| 実行時間 | 79 ms |
| メモリ | 29492 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 550 / 550 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example_00.txt, example_01.txt |
| All | example_00.txt, example_01.txt, hand_00.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| example_00.txt | AC | 1 ms | 2880 KiB |
| example_01.txt | AC | 1 ms | 2728 KiB |
| hand_00.txt | AC | 77 ms | 29352 KiB |
| hand_01.txt | AC | 77 ms | 29492 KiB |
| hand_02.txt | AC | 74 ms | 24764 KiB |
| hand_03.txt | AC | 76 ms | 28424 KiB |
| hand_04.txt | AC | 73 ms | 23176 KiB |
| hand_05.txt | AC | 1 ms | 2880 KiB |
| hand_06.txt | AC | 1 ms | 2776 KiB |
| hand_07.txt | AC | 73 ms | 18320 KiB |
| random_00.txt | AC | 77 ms | 18972 KiB |
| random_01.txt | AC | 77 ms | 18904 KiB |
| random_02.txt | AC | 77 ms | 18992 KiB |
| random_03.txt | AC | 79 ms | 18792 KiB |
| random_04.txt | AC | 77 ms | 19000 KiB |
| random_05.txt | AC | 78 ms | 18816 KiB |
| random_06.txt | AC | 77 ms | 18952 KiB |
| random_07.txt | AC | 77 ms | 18904 KiB |
| random_08.txt | AC | 77 ms | 18832 KiB |
| random_09.txt | AC | 77 ms | 18972 KiB |
| random_10.txt | AC | 76 ms | 22812 KiB |
| random_11.txt | AC | 77 ms | 21904 KiB |
| random_12.txt | AC | 76 ms | 19492 KiB |
| random_13.txt | AC | 77 ms | 21128 KiB |
| random_14.txt | AC | 75 ms | 26032 KiB |
| random_15.txt | AC | 76 ms | 19016 KiB |
| random_16.txt | AC | 76 ms | 19376 KiB |
| random_17.txt | AC | 76 ms | 20672 KiB |
| random_18.txt | AC | 77 ms | 19800 KiB |
| random_19.txt | AC | 78 ms | 20348 KiB |
| random_20.txt | AC | 76 ms | 20132 KiB |
| random_21.txt | AC | 74 ms | 20900 KiB |
| random_22.txt | AC | 76 ms | 19468 KiB |
| random_23.txt | AC | 76 ms | 20680 KiB |
| random_24.txt | AC | 77 ms | 19656 KiB |
| random_25.txt | AC | 78 ms | 21464 KiB |
| random_26.txt | AC | 77 ms | 19120 KiB |
| random_27.txt | AC | 77 ms | 20404 KiB |
| random_28.txt | AC | 76 ms | 19616 KiB |
| random_29.txt | AC | 76 ms | 19216 KiB |