Sakura_Emilia
2024-11-20 02:32:37
对于每组数据读入的 map<int, int>
打个桶即可。
这里特别需要注意矩形区域为正方形的情况,因此在读入 mp[k]++;
更新要放置在 mp[(n - 2) / k] > 0
判断的后面。
#pragma GCC optimize(2)
#include <bits/stdc++.h>
#define Ciallo main
#define int long long
using namespace std;
int T, n, k, ans1, ans2;
map<int, int> mp;
inline void solve() {
cin >> n;
mp.clear();
for(int i = 1; i <= n; i++) {
cin >> k;
if((n - 2) % k == 0) {
if(mp[(n - 2) / k] > 0)
ans1 = k, ans2 = (n - 2) / k;
mp[k]++;
}
}
cout << ans1 << " " << ans2 << endl;
}
signed Ciallo() {
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
cin >> T;
while(T--)
solve();
return 0;
}