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 (пусть текущий, и для каждого будем искать нужный элемент из a бинарным поиском -- изначально он может быть любым из a, потом мы проверяем средний элемент -- если он больше чем b[i] -- тогда наш искомый может быть либо этим средним, либо левее, и наоборот, если он меньше, то тогда первый больший лежит точно справа И так мы каждый раз откидываем одну из половин, пока не останется один элемент -- он и есть искомый Пример кода на python: n, m = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) for i in range(m): l = -1 r = n while r - l > 1: mid = (r + l) // 2 if a[mid] > b[i]: r = mid else: l = mid if r == n: print(-1, end=' ') else: print(r + 1, end=' ')
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)