Run ID:77412

提交时间:2024-06-09 11:56:32

#include <iostream> #include <algorithm> #include <cmath> // For std::abs() #include <climits> // For INT_MAX const int MAX_N = 1000; // 最大数量定义 int main() { int n; std::cin >> n; int values[MAX_N]; int indices[MAX_N]; for (int i = 0; i < n; ++i) { std::cin >> values[i]; indices[i] = i + 1; // 存储1-based index } // 对索引数组进行排序,根据其对应的值 std::sort(indices, indices + n, [&](int i, int j) { return values[i - 1] < values[j - 1]; }); int minDistance = INT_MAX; std::pair<int, int> result; // 查找具有最小差值的相邻元素 for (int i = 1; i < n; ++i) { int currentDistance = std::abs(values[indices[i] - 1] - values[indices[i - 1] - 1]); if (currentDistance < minDistance) { minDistance = currentDistance; if (indices[i - 1] < indices[i]) { result = {indices[i - 1], indices[i]}; } else { result = {indices[i], indices[i - 1]}; } } } std::cout << result.first << " " << result.second << std::endl; return 0; }