Làm sao để có câu trả lời hay nhất?
10/12/2024
10/12/2024
10/12/2024
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
int min_greater_than_k = INT_MAX;
vector<int> positions;
for (int i = 0; i < n; ++i) {
if (a[i] > k && a[i] < min_greater_than_k) {
min_greater_than_k = a[i];
positions.clear(); // Xóa danh sách vị trí cũ
positions.push_back(i);
} else if (a[i] == min_greater_than_k) {
positions.push_back(i);
}
}
if (min_greater_than_k == INT_MAX) {
cout << "Khong tim thay so nao lon hon k" << endl;
} else {
cout << "So nho nhat lon hon k la: " << min_greater_than_k << endl;
cout << "Cac vi tri cua no la: ";
for (int i : positions) {
cout << i << " ";
}
cout << endl;
}
return 0;
}
10/12/2024
#include <iostream>
#include <vector>
#include <climits>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
int min_greater_than_k = INT_MAX;
vector<int> positions;
for (int i = 0; i < n; ++i) {
if (a[i] > k && a[i] < min_greater_than_k) {
min_greater_than_k = a[i];
positions.clear(); // Xóa danh sách vị trí cũ
positions.push_back(i);
} else if (a[i] == min_greater_than_k) {
positions.push_back(i);
}
}
if (min_greater_than_k == INT_MAX) {
cout << "Khong tim thay so nao lon hon k" << endl;
} else {
cout << "So nho nhat lon hon k la: " << min_greater_than_k << endl;
cout << "Cac vi tri cua no la: ";
for (int i : positions) {
cout << i << " ";
}
cout << endl;
}
return 0;
}
10/12/2024
n
: Số lượng phần tử trong dãy số.k
: Giá trị cần so sánh.a1, a2, ..., an
: Các phần tử của dãy số.k
.Thuật toán:
min_greater_than_k
bằng một giá trị lớn hơn bất kỳ giá trị nào trong dãy (ví dụ: INT_MAX
trong C++).positions
để lưu các vị trí.a[i]
trong dãy.a[i]
lớn hơn k
và nhỏ hơn min_greater_than_k
:min_greater_than_k
bằng a[i]
.i
vào danh sách positions
.min_greater_than_k
và các phần tử trong positions
.Mã ví dụ (C++)
C++
#include <iostream> #include <vector> using namespace std; int main() { int n, k; cin >> n >> k; vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } int min_greater_than_k = INT_MAX; vector<int> positions; for (int i = 0; i < n; ++i) { if (a[i] > k && a[i] < min_greater_than_k) { min_greater_than_k = a[i]; positions.clear(); // Xóa danh sách vị trí cũ positions.push_back(i + 1); // Chú ý: Vị trí trong mảng bắt đầu từ 0 } else if (a[i] == min_greater_than_k) { positions.push_back(i + 1); } } if (min_greater_than_k != INT_MAX) { cout << min_greater_than_k << endl; for (int position : positions) { cout << position << " "; } } else { cout << "Khong tim thay so nao lon hon k" << endl; } return 0; }
Giải thích mã:
min_greater_than_k
và danh sách positions
.min_greater_than_k
và positions
.10/12/2024
#include <bits/stdc++.h>
using namespace std;
long long n,a[1000001],d=0,k,b[1000001],x;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>n>>k;
for(long long i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(b,b+n);
for(long long i=1;i<=n;i++)
{
if(b[i]>k){x=b[i];break;}
}
cout<<x<<endl;
for(long long i=1;i<=n;i++)
{
if(a[i]==x)cout<<i<<" ";
}
return 0;
}
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
5 giờ trước
5 giờ trước
Top thành viên trả lời