题目描述 告警抑制,是指高优先级告警抑制低优先级告警的规则。高优先级告警产生后,低优先级告警不再产生。请根据原始告警列表和告警抑制关系,给出实际产生的告警列表。 。不会出现循环抑制的情况。 告警不会传递,比如A->B,B->C,这种情况下A不会直接抑制C。但被抑制的告警仍然可以抑制其他低优先级告警 输入描述 第一行为数字N,表示告警抑制关系个数,0 s N s 120接下来N行,每行是由空格分隔的两个告警ID,例如: id1 id2,表示id1抑制id2,告警ID的格式为: 大写字母+0个或者1个数字 最后一行为告警产生列表,列表长度[1.1001 输出描述 真实产生的告警列表 输入 2 A B B C A B C D E 输出 A D E;用js代码写
时间: 2024-02-17 19:01:34 浏览: 12
以下是用 JavaScript 实现的代码:
```javascript
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let suppressions = new Map();
let alarms = new Set();
rl.on('line', (input) => {
if (!suppressions.size) {
const n = parseInt(input);
for (let i = 0; i < n; i++) {
rl.once('line', (line) => {
const [id1, id2] = line.split(' ');
if (!suppressions.has(id1)) {
suppressions.set(id1, new Set());
}
suppressions.get(id1).add(id2);
});
}
} else {
const alarmList = input.split(' ');
for (const alarm of alarmList) {
if (!suppressions.has(alarm)) {
alarms.add(alarm);
} else {
let suppressed = false;
for (const suppressedAlarm of suppressions.get(alarm)) {
if (alarms.has(suppressedAlarm)) {
alarms.delete(suppressedAlarm);
suppressed = true;
}
}
if (!suppressed) {
alarms.add(alarm);
}
}
}
console.log([...alarms].join(' '));
}
});
```
这个程序首先读取输入中的告警抑制关系,存储在一个 Map 中。然后,它会逐行读取告警产生列表。对于每一个告警,程序会检查它是否被抑制了。如果它没有被抑制,就加入真实产生的告警列表中;否则,程序会检查它抑制的告警是否已经在真实产生的告警列表中。如果有,就将它们从真实产生的告警列表中删除。最后,程序输出真实产生的告警列表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)