From c5eebf5252c99cdfb25e12770a56b50204a654ce Mon Sep 17 00:00:00 2001 From: hanyixuanten Date: Mon, 2 Nov 2026 07:15:21 +0000 Subject: [PATCH] new file: P10466.cpp --- P10466.cpp | 25 +++++++++++++++++++++++++ P10466.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 P10466.cpp create mode 100644 P10466.md diff --git a/P10466.cpp b/P10466.cpp new file mode 100644 index 0000000..612b5d7 --- /dev/null +++ b/P10466.cpp @@ -0,0 +1,25 @@ +#include +using namespace std; +set s; +map rev; +int n; +int tmp; +int main(void) { + scanf("%d%d", &n, &tmp), s.insert(tmp), rev[tmp] = 1; + for(int i = 2; i <= n; i++) { + scanf("%d", &tmp), s.insert(tmp), rev[tmp] = i; + auto lb = s.lower_bound(tmp), ub = s.upper_bound(tmp); + int minval = INT_MAX, ind = 0; + if(lb != s.begin()) { + --lb; + if(abs(tmp - *lb) < minval) + minval = abs(tmp - *lb), ind = rev[*lb]; + } + if(ub != s.end()) + if(abs(tmp - *ub) < minval) + minval = abs(tmp - *ub), ind = rev[*ub]; + printf("%d %d\n", minval, ind); + } + + return 0; +} diff --git a/P10466.md b/P10466.md new file mode 100644 index 0000000..097db66 --- /dev/null +++ b/P10466.md @@ -0,0 +1,47 @@ +# P10466 邻值查找 + +## 题目描述 + +给定一个长度为 $n$ 的序列 $A$,$A$ 中的数各不相同。 + +对于 $A$ 中的每一个数 $A_i$,求: + +$\min_{1 \le j