H. Gambling
【Codeforces Round #799 (Div. 4)】
又写了一遍。。加深印象
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
void solve() {
int n;
cin >> n;
vector<int> a(n);
map<int, vector<int>> mp;
for (int i = 0; i < n; i++) {
cin >> a[i];
mp[a[i]].emplace_back(i);
}
int x = a[0], l = 0, r = 0;
int ans = 1;
for (auto [y, v] : mp) {
int start = v[0], last = v[0], res = 1;
for (int i = 1; i < v.size(); i++) {
int num = v[i] - last - 1; //两个数中间夹了多少个别人
res = res - num + 1; //换算成值
last = v[i];
if (res < 1) res = 1, start = v[i];
if (res > ans) {
ans = res;
x = y, l = start, r = v[i];
}
}
}
cout << x << " " << l + 1 << " " << r + 1 << "\n";
}
int32_t main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int tt(1);
std::cin >> tt;
while (tt--) {
solve();
}
return 0;
}