8.4打卡

发布时间 2023-08-04 20:26:25作者: 灬倾夏

L2-010 排座位

#include <iostream>
using namespace std;
int N, M, K, a[101][101] = { 0 }, fri[101] = { 0 }, p1, p2, ship;

int isFriend(int x) {
return fri[x] == x ? x : fri[x] = isFriend(fri[x]);
}

int main() {
cin >> N >> M >> K;
for (int i = 1; i <= N; ++i)
fri[i] = i;
while (M--) {
cin >> p1 >> p2 >> ship;
a[p1][p2] = a[p2][p1] = ship;
if (ship == 1) {
p1 = isFriend(p1);
p2 = isFriend(p2);
if (p1 != p2)
fri[p1] = p2;
}
}
while (K--) {
cin >> p1 >> p2;
if (a[p1][p2] == -1)
cout << (isFriend(p1) == isFriend(p2) ? "OK but..." : "No way") << endl;
else
cout << (isFriend(p1) == isFriend(p2) ? "No problem" : "OK") << endl;
}
return 0;
}