문제
링크
풀이
#include <iostream>
#include <map>
#include <vector>
using namespace std;
void solve(void) {
int n; cin >> n;
vector<int> t(n);
for (int i=0; i<n; i++) cin >> t[i];
map<int, int> mp1;
for (int i=0; i<n; i++) {
mp1[t[i]]++;
}
map<int, vector<int>> mp2;
for (int i=0, j=1; i<n; i++) {
if (mp1[t[i]] != 6) continue;
mp2[t[i]].push_back(j++);
}
int ans = -1, key = 1e9;
for (const auto &[p, v] : mp2) {
int cur = v[0] + v[1] + v[2] + v[3];
if ((cur < key) || (cur == key && v[4] < mp2[ans][4])) ans = p, key = cur;
}
cout << ans << "\n";
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t; cin >> t;
while (t--) solve();
return 0;
}