Làm sao để có câu trả lời hay nhất?
29/03/2025
29/03/2025
1. Ý tưởng:
2. Thuật toán:
3. Cài đặt C++:
C++
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
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];
}
set<int> bad_colors;
for (int color = 0; color <= 1000000; ++color) {
vector<int> positions;
for (int i = 0; i < n; ++i) {
if (a[i] == color) {
positions.push_back(i);
}
}
for (int j = 0; j < positions.size() - 1; ++j) {
if (positions[j + 1] - positions[j] <= k) {
bad_colors.insert(color);
break;
}
}
}
if (bad_colors.empty()) {
cout << -1 << endl;
} else {
cout << *bad_colors.rbegin() << endl;
}
return 0;
}
4. Độ phức tạp:
5. Tối ưu hóa:
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
Top thành viên trả lời