1、相反数
ACwing 3197
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
int n;
unordered_map<int, int> mp;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
int x; cin >> x;
mp[abs(x)]++;
}
int res = 0;
for (auto x: mp)
if (x.second == 2)
res++;
cout << res << endl;
return 0;
}
2、窗口
ACwing 3198
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 15;
int n, m;
struct Window {
int x1, y1, x2, y2;
int id;
} w[N];
int get(int x, int y) {
for (int i = n; i; i--)
if (x >= w[i].x1 && x <= w[i].x2 && y >= w[i].y1 && y <= w[i].y2)
return i;
return 0;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
w[i] = {
x1, y1, x2, y2, i};
}
while (m--) {
int x, y; cin >> x >> y;
int t = get(x, y);
if (!t) puts("IGNORED");
else {
cout << w[t]