88692024-02-02 17:35:27NagyLeoLegmesszebbi rossz sorrendű (35 pont)python3Hibás válasz 1/3561ms37440 KiB
def binary_search(nums, target, left, right):
    while left <= right:
        mid = (left + right) // 2
        if nums[mid] == target:
            return mid
        elif nums[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

def find_misplaced_elements(nums):
    n = len(nums)
    max_index = 0
    min_index = n - 1

    for i in range(1, n):
        if nums[i] < nums[i - 1]:
            max_index = i - 1
            break

    for i in range(n - 2, -1, -1):
        if nums[i] > nums[i + 1]:
            min_index = i + 1
            break

    if max_index == 0 and min_index == n - 1:
        return -1

    correct_max_index = binary_search(nums, nums[max_index], min_index, n - 1)

    correct_min_index = binary_search(nums, nums[min_index], 0, max_index)

    return max_index, correct_min_index if correct_min_index != -1 else min_index

# Read input
n = int(input())
nums = list(map(int, input().split()))

# Find the indices of the misplaced elements
result = find_misplaced_elements(nums)

# Print the result
if result == -1:
    print(-1)
else:
    print(result[0], result[1])
RészfeladatÖsszpontTesztVerdiktIdőMemória
base1/35
1Hibás válasz0/017ms11456 KiB
2Hibás válasz0/050ms34532 KiB
3Elfogadva1/118ms11736 KiB
4Hibás válasz0/117ms12008 KiB
5Hibás válasz0/117ms12128 KiB
6Hibás válasz0/117ms11928 KiB
7Hibás válasz0/117ms12448 KiB
8Hibás válasz0/117ms12704 KiB
9Hibás válasz0/117ms13316 KiB
10Hibás válasz0/118ms13380 KiB
11Hibás válasz0/118ms13800 KiB
12Hibás válasz0/228ms21588 KiB
13Hibás válasz0/232ms23460 KiB
14Hibás válasz0/232ms24108 KiB
15Hibás válasz0/228ms19556 KiB
16Hibás válasz0/234ms24872 KiB
17Hibás válasz0/239ms28732 KiB
18Hibás válasz0/241ms30952 KiB
19Hibás válasz0/246ms33172 KiB
20Hibás válasz0/245ms35080 KiB
21Hibás válasz0/250ms36888 KiB
22Hibás válasz0/248ms37440 KiB
23Hibás válasz0/259ms37244 KiB
24Hibás válasz0/261ms37000 KiB