Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
640M
Input:
bàn phím
Output:
màn hình
Cho một mảng số nguyên \(A\) có \(N\) phần tử, mảng này đã được sắp xếp tăng dần. Hãy tìm vị trí của hai phần tử khác nhau bất kỳ sao cho tổng của chúng có giá trị là \(X\). Nếu trong dãy \(A\) không tồn tại hai phần tử khác nhau có tổng là \(X\) thì in ra "No solution".
Input
- Dòng đầu chứa 2 số nguyên \(N\) và \(X\).
- Dòng tiếp theo chứa \(N\) số nguyên \(A_i\).
Output
- Hai vị trí \(i\) và \(j\) khác nhau sao cho tổng ở hai vị trí này có giá là \(X\). In vị trí phần tử nhỏ hơn trước phần tử lớn hơn.
- Nếu không tồn tại in ra "No solution".
Constants
- \(2 \leq N \leq 10^6\) và \(0 \leq A_i, X \leq 10^9\)
Example
Test 1
Input
6 16
2 3 5 7 9 12
Output
4 5
Bình luận
def find_two_sum(N, X, A):
left, right = 0, N - 1
Nhập dữ liệu
N, X = map(int, input().split())
A = list(map(int, input().split()))
Gọi hàm tìm kiếm
find_two_sum(N, X, A)
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
#include <bits/stdc++.h>
using namespace std;
const int M = 1e6 + 16;
int a[M];
int main()
{
int n, x;
cin >> n >> x;
for (int i = 1; i <= n; ++i)
cin >> a[i];
for (int l = 1, r = n; l < r; ++l)
{
while (l < r - 1 && a[l] + a[r] > x) --r;
if (a[l] + a[r] == x)
{
cout << l << ' ' << r;
return 0;
}
}
cout << "No solution";
return 0;
}
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
dễ vãi
ảo thật đấy
ẢO THUẬT ĐẾI
trường hợp no solusion làm sao vậy ạ?
[enter link description here][1]
http://c him
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
17 bình luận nữa