Điểm:
300
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho một mảng gồm \(n\) số nguyên . Tìm \(2\) chỉ số \(i,j\) thỏa mãn \(1\le i<j\le n\) và \(a[j]-a[i]\) đạt giá trị lớn nhất.
Input
-
Dòng thứ nhất chứa số nguyên dương \(n(2\le n\le 10^5)\)
-
Dòng thứ hai chứa \(n\) số nguyên \(a_i(-10^3\le a_i\le 10^3 \text{ }\forall 1\le i\le n)\)
Output
-
Dòng thứ nhất chứa hai chỉ số \(i,j\) thỏa mãn yêu cầu bài toán
-
Dòng thứ hai in ra giá trị \(a[j]-a[i]\)
(Chú ý nếu có nhiều đáp án in ra đáp án bất kì).
Example
Test 1
Input
3
1 2 3
Output
1 3
2
Bình luận
hai phần tử dễ thương ❌
hai phần tử dễ đập ✅
n=int(input())
a=list(map(int,input().split()))
MIN=a[0]
i=0
MAX=-10e6
for j in range (1,n):
tam=a[j]-a[i]
if tam>MAX:
d=i
c=j
MAX=tam
if a[j]<MIN:
MIN=a[j]
i=j
print(d+1,c+1)
print (MAX)
python không vòng lặp:
.
python:làm mún ẻ chải:
def find_maximum_difference(arr):
n = len(arr)
max_diff = float('-inf') # Giá trị khác nhau lớn nhất
min_value = arr[0] # Giá trị nhỏ nhất mà chúng tôi đã thấy
Đọc input
n = int(input())
arr = list(map(int, input().split()))
Tìm chỉ số i và j thỏa mãn điều kiện a[j] - a[i] là lớn nhất
best_i, best_j = find_maximum_difference(arr)
print(best_i, best_j)
print(arr[best_j-1] - arr[best_i-1])
n=int(input())
k=list(map(int,input().split()))
h=max(k);a=min(k)
hh=0;aa=0
for i in range(n):
if k[i]==a:
aa=i+1
continue
continue
for i in range(n):
if k[i]==h:
hh=i+1
continue
continue
print(min(aa,hh),max(aa,hh))
print(h-a)
cho mik hỏi là sai chỗ nào á
test yếu quá
bạn minhm=nhata1 if else hết test luôn =)) kiên trì
bài này không cần nhập mảng, online solve luôn, lưu lại max min và res để in ra kết quả cuối cùng
bạn TienMinh13042009 if test nhờ admin xử lí
6 bình luận nữa