Untitled
unknown
c_cpp
3 years ago
2.1 kB
10
Indexable
#include <bits/stdc++.h>
using namespace std;
struct Key {
int x;
int y;
};
void FindGhost(unordered_map<int, Key>& k, int x, int y) {
bool flag = true;
for (const auto& [id, key] : k)
{
if(key.x == x && key.y == y) {
cout << "Find ghosy key: ";
cout << id << endl;
flag = false;
}
}
if(flag) cout << "Not ghost key condition!" << endl;
}
int main() {
int N, M, K, Q,key,x,y,a,b,c;
cin >> N >> M >> K >> Q;
unordered_map<int, Key> Keys;
for (int i = 1; i <= K; i++) {
cin >> key >> x >> y;
Keys[key].x = x;
Keys[key].y = y;
}
for (int i = 0; i < Q; i++) {
bool flag = true;
cin >> a >> b >> c;
if(a != b && a != c && b != c) {
flag = false;
if (Keys[a].x == Keys[b].x && Keys[a].y == Keys[c].y) {
FindGhost(Keys, Keys[c].x, Keys[b].y);
continue;
}else
if (Keys[a].y == Keys[b].y && Keys[a].x == Keys[c].x) {
FindGhost(Keys, Keys[b].x, Keys[c].y);
continue;
}else
if (Keys[b].x == Keys[a].x && Keys[b].y == Keys[c].y) {
FindGhost(Keys, Keys[c].x, Keys[a].y);
continue;
}else
if (Keys[b].y == Keys[a].y && Keys[b].x == Keys[c].x) {
FindGhost(Keys, Keys[a].x, Keys[c].y);
continue;
}else
if (Keys[c].x == Keys[a].x && Keys[c].y == Keys[b].y) {
FindGhost(Keys, Keys[b].x, Keys[a].y);
continue;
}else
if (Keys[c].y == Keys[a].y && Keys[c].x == Keys[b].x) {
FindGhost(Keys, Keys[a].x, Keys[b].y);
continue;
}
else {
cout << "Not ghost key condition!" << endl;
}
}
if(flag) cout << "Not ghost key condition!" << endl;
}
}Editor is loading...