Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
В этой задаче нам нужно для каждого числа из второго массива найти число из первого массива наиболее близкое по значению Как один из вариантов решения задачи, мы можем для b[i] одним бинарным поиском найти ближайшее большее или равное из a, другим бинарным поиском найти ближайшее меньшее или равное из a, и сравнить их, взять тот, который ближе Пример кода на python: n, k = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) for e in b: l1 = -1 r1 = n while r1 - l1 > 1: m = (r1 + l1) // 2 if a[m] >= e: r1 = m else: l1 = m l2 = -1 r2 = n while r2 - l2 > 1: m = (r2 + l2) // 2 if a[m] <= e: l2 = m else: r2 = m if r1 == n: print(a[l2]) elif l2 == -1: print(a[r1]) else: if e - a[l2] <= a[r1] - e: print(a[l2]) else: print(a[r1])
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)