#include <iostream>
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const int MAX = 100;
vector<int> graph[MAX];
bool visited[MAX];
int priorityLevel[MAX];
void bfs(int start, int nodes) {
if (start < 0 || start >= nodes) {
cout << "Invalid burst location\n";
return;
}
queue<int> q;
q.push(start);
visited[start] = true;
cout << "Affected Areas:\n";
while (!q.empty()) {
int node = q.front();
q.pop();
cout << "Area " << node << " (Priority: " << priorityLevel[node] << ")\n";
for (int neighbor : graph[node]) {
if (!visited[neighbor]) {
visited[neighbor] = true;
q.push(neighbor);
}
}
}
}
int main() {
int nodes, edges;
cin >> nodes >> edges;
if (nodes > MAX || nodes <= 0) {
cout << "Invalid number of nodes\n";
return 1;
}
// Reset arrays
for(int i = 0; i < MAX; i++) {
visited[i] = false;
graph[i].clear();
priorityLevel[i] = 0;
}
for (int i = 0; i < edges; i++) {
int u, v;
cin >> u >> v;
if (u >= 0 && u < nodes && v >= 0 && v < nodes) {
graph[u].push_back(v);
graph[v].push_back(u);
}
}
for (int i = 0; i < nodes; i++) {
cin >> priorityLevel[i];
}
int burstLocation;
cin >> burstLocation;
bfs(burstLocation, nodes);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxxdWV1ZT4gCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYID0gMTAwOwoKdmVjdG9yPGludD4gZ3JhcGhbTUFYXTsKYm9vbCB2aXNpdGVkW01BWF07CmludCBwcmlvcml0eUxldmVsW01BWF07Cgp2b2lkIGJmcyhpbnQgc3RhcnQsIGludCBub2RlcykgewogICAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+PSBub2RlcykgewogICAgICAgIGNvdXQgPDwgIkludmFsaWQgYnVyc3QgbG9jYXRpb25cbiI7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHF1ZXVlPGludD4gcTsKICAgIHEucHVzaChzdGFydCk7CiAgICB2aXNpdGVkW3N0YXJ0XSA9IHRydWU7CgogICAgY291dCA8PCAiQWZmZWN0ZWQgQXJlYXM6XG4iOwoKICAgIHdoaWxlICghcS5lbXB0eSgpKSB7CiAgICAgICAgaW50IG5vZGUgPSBxLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKCiAgICAgICAgY291dCA8PCAiQXJlYSAiIDw8IG5vZGUgPDwgIiAoUHJpb3JpdHk6ICIgPDwgcHJpb3JpdHlMZXZlbFtub2RlXSA8PCAiKVxuIjsKCiAgICAgICAgZm9yIChpbnQgbmVpZ2hib3IgOiBncmFwaFtub2RlXSkgewogICAgICAgICAgICBpZiAoIXZpc2l0ZWRbbmVpZ2hib3JdKSB7CiAgICAgICAgICAgICAgICB2aXNpdGVkW25laWdoYm9yXSA9IHRydWU7CiAgICAgICAgICAgICAgICBxLnB1c2gobmVpZ2hib3IpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIGludCBub2RlcywgZWRnZXM7CiAgICBjaW4gPj4gbm9kZXMgPj4gZWRnZXM7CgogICAgaWYgKG5vZGVzID4gTUFYIHx8IG5vZGVzIDw9IDApIHsKICAgICAgICBjb3V0IDw8ICJJbnZhbGlkIG51bWJlciBvZiBub2Rlc1xuIjsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAvLyBSZXNldCBhcnJheXMKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBNQVg7IGkrKykgewogICAgICAgIHZpc2l0ZWRbaV0gPSBmYWxzZTsKICAgICAgICBncmFwaFtpXS5jbGVhcigpOwogICAgICAgIHByaW9yaXR5TGV2ZWxbaV0gPSAwOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZWRnZXM7IGkrKykgewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgaWYgKHUgPj0gMCAmJiB1IDwgbm9kZXMgJiYgdiA+PSAwICYmIHYgPCBub2RlcykgewogICAgICAgICAgICBncmFwaFt1XS5wdXNoX2JhY2sodik7CiAgICAgICAgICAgIGdyYXBoW3ZdLnB1c2hfYmFjayh1KTsKICAgICAgICB9CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBub2RlczsgaSsrKSB7CiAgICAgICAgY2luID4+IHByaW9yaXR5TGV2ZWxbaV07CiAgICB9CgogICAgaW50IGJ1cnN0TG9jYXRpb247CiAgICBjaW4gPj4gYnVyc3RMb2NhdGlvbjsKCiAgICBiZnMoYnVyc3RMb2NhdGlvbiwgbm9kZXMpOwoKICAgIHJldHVybiAwOwp9Cg==