Back
Close

You have been Hacked!

Statement

 Goal

Hackers carry out Advanced Persistent Threat cyber attacks against a number of companies. Each company has a firewall with a protection level p.

Cyber attack stages

Hackers execute 3 types of attacks in the following order:
Stage 1: Port scanning (ps)
Stage 2: Brute force (bf)
Stage 3: Malware installation (mi)

There may be multiple attack attempts against the same company in a single stage. The sum of their strengths is used to evaluate the stage. If a stage is successful, the attack proceeds to the next stage; otherwise, the attack is blocked and later stages are not evaluated.

Once the next stage begins, no further attempts of the previous stage occur.

The status of the cyber attack on a company is Hacked if all three stages succeed; otherwise it is Blocked.

Cyber attack attempts on different companies may be interleaved, and they should be evaluated separately.

Firewall

The firewall behaves according to its protection level as follows. The value for each stage in the table is the exclusive upper bound on the total attack strength that the firewall can block in that stage:

Firewall Port Brute Malware
protection scanning force installation
level (p) (ps) (bf) (mi)
------------------------------------------------------
p ≥ 7 10000 ∞ ∞
5 ≤ p ≤ 6 0 5000 3000
p < 5 0 500 1000

For example:
• 10000 means that the attack is blocked if the total strength is strictly less than 10000.
• 0 means that the attack is always successful (not blocked).
• ∞ means that the attack is always blocked.

Your task is to determine the final status of the cyber attack for each company.
Input
Line 1: An integer n, the number of companies.

Next n lines: A string in the format of name:p where:
• name (string) is the company's name.
• p (integer) is its firewall protection level.
(These lines collectively form the company list.)

Next line: An integer a, the number of cyber attack attempts.

Next a lines: A string in the format of name:type:s where:
• name (string) is the attacked company's name.
• type (string) is the attack stage (ps, bf, or mi).
• s (integer) is the attack strength.
Output
n lines: name:status where:
• name is the company's name.
• status is the status of the cyber attack on the company (Hacked or Blocked).
The output order is the same as the order of companies in the company list.
Constraints
1 ≤ n ≤ 10
1 ≤ length of name ≤ 30
1 ≤ p ≤ 10
1 ≤ a ≤ 100
1 ≤ s ≤ 20000
name never contains :.
All names in the company list are unique.
There is always at least one attack of each type against every company, and the attacks for each company are always in the correct order.
Example
Input
2
AeroCorp:9
BioPulse:3
6
AeroCorp:ps:4350
AeroCorp:bf:120
AeroCorp:mi:95
BioPulse:ps:320
BioPulse:bf:740
BioPulse:mi:1260
Output
AeroCorp:Blocked
BioPulse:Hacked

Tags
Conditions, Loops, Arrays

Difficulty
Easy

Test cases
Basic Scenario Test
Input
2 AeroCorp:9 BioPulse:3 6 AeroCorp:ps:4350 AeroCorp:bf:120 AeroCorp:mi:95 BioPulse:ps:320 BioPulse:bf:740 BioPulse:mi:1260
Output
AeroCorp:Blocked BioPulse:Hacked

Validator 1 Validator
Input
2 CyberDyne:4 DeltaLink:8 6 CyberDyne:ps:180 CyberDyne:bf:890 CyberDyne:mi:1650 DeltaLink:ps:3200 DeltaLink:bf:75 DeltaLink:mi:40
Output
CyberDyne:Hacked DeltaLink:Blocked

All Firewall Levels Test
Input
6 EchoWave:7 FluxCore:7 GigaByte:5 HeliosIT:6 IronGate:4 JadeWorks:3 18 EchoWave:ps:9999 EchoWave:bf:15 EchoWave:mi:25 FluxCore:ps:10000 FluxCore:bf:45 FluxCore:mi:30 GigaByte:ps:85 GigaByte:bf:4999 GigaByte:mi:2999 HeliosIT:ps:340 HeliosIT:bf:5000 HeliosIT:mi:3000 IronGate:ps:1200 IronGate:bf:499 IronGate:mi:999 JadeWorks:ps:65 JadeWorks:bf:500 JadeWorks:mi:1000
Output
EchoWave:Blocked FluxCore:Blocked GigaByte:Blocked HeliosIT:Hacked IronGate:Blocked JadeWorks:Hacked

Validator 2 Validator
Input
6 KryptonNet:6 LuminaryLab:7 MatrixHub:3 NexusDev:7 OrionSys:4 PrimeTech:5 18 KryptonNet:ps:210 KryptonNet:bf:5000 KryptonNet:mi:3000 LuminaryLab:ps:10000 LuminaryLab:bf:80 LuminaryLab:mi:60 MatrixHub:ps:95 MatrixHub:bf:500 MatrixHub:mi:1000 NexusDev:ps:9999 NexusDev:bf:120 NexusDev:mi:40 OrionSys:ps:430 OrionSys:bf:499 OrionSys:mi:999 PrimeTech:ps:160 PrimeTech:bf:4999 PrimeTech:mi:2999
Output
KryptonNet:Hacked LuminaryLab:Blocked MatrixHub:Hacked NexusDev:Blocked OrionSys:Blocked PrimeTech:Blocked

Accumulated Strengths - All Blocked Test
Input
5 SolarisNet:5 UltraData:3 QuantumSec:9 TitanWorks:4 RiftLogic:6 30 QuantumSec:ps:6200 QuantumSec:ps:5300 QuantumSec:bf:75 QuantumSec:bf:40 QuantumSec:mi:65 QuantumSec:mi:85 RiftLogic:ps:140 RiftLogic:ps:210 RiftLogic:bf:2150 RiftLogic:bf:1350 RiftLogic:mi:1800 RiftLogic:mi:1211 SolarisNet:ps:80 SolarisNet:ps:120 SolarisNet:bf:2400 SolarisNet:bf:9506 SolarisNet:mi:1600 SolarisNet:mi:1300 TitanWorks:ps:95 TitanWorks:ps:105 TitanWorks:bf:478 TitanWorks:bf:270 TitanWorks:mi:450 TitanWorks:mi:450 UltraData:ps:35 UltraData:ps:70 UltraData:bf:220 UltraData:bf:230 UltraData:mi:803 UltraData:mi:420
Output
SolarisNet:Blocked UltraData:Blocked QuantumSec:Blocked TitanWorks:Blocked RiftLogic:Blocked

Validator 3 Validator
Input
5 ZenithCorp:3 WireFrame:8 VortexAI:5 YieldPoint:6 XenonLab:4 30 VortexAI:ps:65 VortexAI:ps:85 VortexAI:bf:5302 VortexAI:bf:2700 VortexAI:mi:1200 VortexAI:mi:1700 WireFrame:ps:7100 WireFrame:ps:4900 WireFrame:bf:160 WireFrame:bf:140 WireFrame:mi:110 WireFrame:mi:130 XenonLab:ps:90 XenonLab:ps:110 XenonLab:bf:210 XenonLab:bf:240 XenonLab:mi:689 XenonLab:mi:450 YieldPoint:ps:75 YieldPoint:ps:125 YieldPoint:bf:1800 YieldPoint:bf:3100 YieldPoint:mi:6497 YieldPoint:mi:1500 ZenithCorp:ps:45 ZenithCorp:ps:55 ZenithCorp:bf:214 ZenithCorp:bf:330 ZenithCorp:mi:420 ZenithCorp:mi:480
Output
ZenithCorp:Blocked WireFrame:Blocked VortexAI:Blocked YieldPoint:Blocked XenonLab:Blocked

Interleaved Attacks Test
Input
4 AlphaBit:6 BravoCloud:5 CharlieHost:6 DeltaSec:5 40 AlphaBit:ps:85 BravoCloud:ps:40 CharlieHost:ps:120 DeltaSec:ps:90 AlphaBit:ps:65 BravoCloud:ps:110 CharlieHost:ps:75 DeltaSec:ps:130 AlphaBit:ps:150 BravoCloud:ps:80 CharlieHost:ps:95 DeltaSec:ps:60 AlphaBit:bf:1400 BravoCloud:bf:1350 CharlieHost:bf:13350 DeltaSec:bf:420 AlphaBit:bf:850 BravoCloud:bf:920 CharlieHost:bf:12280 DeltaSec:bf:310 AlphaBit:bf:1150 BravoCloud:bf:1280 CharlieHost:bf:14410 DeltaSec:bf:290 AlphaBit:bf:950 BravoCloud:bf:850 CharlieHost:bf:16660 DeltaSec:bf:3980 AlphaBit:mi:1100 BravoCloud:mi:1350 CharlieHost:mi:450 DeltaSec:mi:720 AlphaBit:mi:750 BravoCloud:mi:950 CharlieHost:mi:320 DeltaSec:mi:680 AlphaBit:mi:650 BravoCloud:mi:850 CharlieHost:mi:430 DeltaSec:mi:1600
Output
AlphaBit:Blocked BravoCloud:Blocked CharlieHost:Blocked DeltaSec:Hacked

Validator 4 Validator
Input
4 GolfTech:6 EchoRidge:6 HotelSoft:5 FoxtrotMedia:5 40 GolfTech:ps:60 EchoRidge:ps:140 HotelSoft:ps:85 FoxtrotMedia:ps:70 GolfTech:ps:95 EchoRidge:ps:110 HotelSoft:ps:65 FoxtrotMedia:ps:120 GolfTech:ps:45 EchoRidge:ps:80 HotelSoft:ps:115 FoxtrotMedia:ps:90 GolfTech:bf:450 EchoRidge:bf:1450 HotelSoft:bf:520 FoxtrotMedia:bf:17115 GolfTech:bf:380 EchoRidge:bf:1100 HotelSoft:bf:430 FoxtrotMedia:bf:19285 GolfTech:bf:420 EchoRidge:bf:950 HotelSoft:bf:390 FoxtrotMedia:bf:18345 GolfTech:bf:350 EchoRidge:bf:1500 HotelSoft:bf:460 FoxtrotMedia:bf:11675 GolfTech:mi:550 EchoRidge:mi:950 HotelSoft:mi:1620 FoxtrotMedia:mi:1420 GolfTech:mi:420 EchoRidge:mi:800 HotelSoft:mi:760 FoxtrotMedia:mi:840 GolfTech:mi:330 EchoRidge:mi:750 HotelSoft:mi:620 FoxtrotMedia:mi:740
Output
GolfTech:Blocked EchoRidge:Blocked HotelSoft:Blocked FoxtrotMedia:Hacked

Complex Interleaving Test
Input
6 AeroDynamics:5 BlueShift:8 CipherGate:7 DeepDive:4 ElevateIT:6 FrontierSys:3 70 FrontierSys:ps:130 CipherGate:ps:7800 AeroDynamics:ps:90 DeepDive:ps:85 ElevateIT:ps:95 BlueShift:ps:3200 ElevateIT:ps:120 CipherGate:ps:10000 FrontierSys:ps:60 BlueShift:ps:2800 CipherGate:ps:400 DeepDive:ps:110 ElevateIT:ps:65 CipherGate:ps:1100 AeroDynamics:ps:45 FrontierSys:ps:75 ElevateIT:bf:600 FrontierSys:bf:90 BlueShift:bf:190 AeroDynamics:bf:1600 CipherGate:bf:130 DeepDive:bf:140 BlueShift:bf:350 ElevateIT:bf:2840 CipherGate:bf:210 AeroDynamics:bf:1200 FrontierSys:bf:75 DeepDive:bf:160 CipherGate:bf:160 BlueShift:bf:140 FrontierSys:bf:110 ElevateIT:bf:250 CipherGate:bf:180 AeroDynamics:bf:1400 DeepDive:bf:120 ElevateIT:bf:110 BlueShift:bf:220 ElevateIT:bf:1200 FrontierSys:bf:85 FrontierSys:mi:210 CipherGate:mi:140 DeepDive:mi:160 ElevateIT:mi:90 BlueShift:mi:110 AeroDynamics:mi:4836 FrontierSys:mi:16528 ElevateIT:mi:1 CipherGate:mi:180 BlueShift:mi:160 AeroDynamics:mi:9460 DeepDive:mi:280 FrontierSys:mi:80 ElevateIT:mi:85 FrontierSys:mi:120 DeepDive:mi:140 CipherGate:mi:90 BlueShift:mi:120 AeroDynamics:mi:6 FrontierSys:mi:60 DeepDive:mi:310 ElevateIT:mi:2703 FrontierSys:mi:1000 BlueShift:mi:80 CipherGate:mi:130 AeroDynamics:mi:15027 FrontierSys:mi:250 FrontierSys:mi:45 ElevateIT:mi:120 DeepDive:mi:90 AeroDynamics:mi:3122
Output
AeroDynamics:Blocked BlueShift:Blocked CipherGate:Blocked DeepDive:Blocked ElevateIT:Blocked FrontierSys:Blocked

Validator 5 Validator
Input
6 KineticLabs:4 HyperionNet:9 JunctionAI:3 GrayMatter:5 LevelUp:6 InfiniCore:7 70 LevelUp:ps:90 InfiniCore:ps:1200 GrayMatter:ps:70 KineticLabs:ps:95 HyperionNet:ps:2400 JunctionAI:ps:65 InfiniCore:ps:8400 KineticLabs:ps:115 GrayMatter:ps:80 LevelUp:ps:60 InfiniCore:ps:10000 HyperionNet:ps:3600 KineticLabs:ps:70 LevelUp:ps:110 InfiniCore:ps:800 JunctionAI:ps:85 GrayMatter:bf:1500 HyperionNet:bf:160 LevelUp:bf:300 InfiniCore:bf:210 KineticLabs:bf:120 JunctionAI:bf:110 GrayMatter:bf:1450 LevelUp:bf:950 InfiniCore:bf:280 HyperionNet:bf:320 JunctionAI:bf:140 KineticLabs:bf:70 LevelUp:bf:2200 GrayMatter:bf:1350 InfiniCore:bf:140 HyperionNet:bf:240 LevelUp:bf:150 KineticLabs:bf:80 JunctionAI:bf:130 LevelUp:bf:1400 InfiniCore:bf:190 HyperionNet:bf:180 KineticLabs:bf:90 InfiniCore:mi:120 LevelUp:mi:75 GrayMatter:mi:19478 KineticLabs:mi:140 HyperionNet:mi:110 JunctionAI:mi:1000 LevelUp:mi:9 KineticLabs:mi:20 GrayMatter:mi:5056 InfiniCore:mi:160 LevelUp:mi:2832 JunctionAI:mi:220 HyperionNet:mi:140 GrayMatter:mi:11697 KineticLabs:mi:190 InfiniCore:mi:80 LevelUp:mi:3 GrayMatter:mi:7839 KineticLabs:mi:160 HyperionNet:mi:90 JunctionAI:mi:120 InfiniCore:mi:110 LevelUp:mi:80 GrayMatter:mi:12254 KineticLabs:mi:280 HyperionNet:mi:70 JunctionAI:mi:12408 KineticLabs:mi:40 JunctionAI:mi:190 KineticLabs:mi:90 KineticLabs:mi:70
Output
KineticLabs:Blocked HyperionNet:Blocked JunctionAI:Blocked GrayMatter:Blocked LevelUp:Blocked InfiniCore:Blocked

Total Disorder Test
Input
8 MacroEdge:4 NanoVolt:7 OptimaCorp:4 ParagonSec:8 QuasarNet:6 RadiantDev:5 ApexShield:5 ByteGuard:1 94 OptimaCorp:ps:110 RadiantDev:ps:75 RadiantDev:ps:110 ApexShield:ps:90 MacroEdge:ps:115 QuasarNet:ps:80 MacroEdge:ps:90 ApexShield:bf:2450 QuasarNet:ps:95 RadiantDev:ps:130 ByteGuard:ps:110 MacroEdge:ps:65 OptimaCorp:ps:80 RadiantDev:bf:85 MacroEdge:bf:540 QuasarNet:ps:140 ByteGuard:bf:130 QuasarNet:bf:700 ParagonSec:ps:10002 ParagonSec:ps:11500 ParagonSec:bf:180 ApexShield:bf:2550 QuasarNet:bf:200 ApexShield:mi:850 QuasarNet:bf:1600 ParagonSec:bf:160 QuasarNet:bf:5647 RadiantDev:bf:110 OptimaCorp:ps:95 MacroEdge:bf:320 QuasarNet:bf:1400 NanoVolt:ps:420 RadiantDev:bf:95 RadiantDev:bf:140 NanoVolt:ps:18 OptimaCorp:bf:280 MacroEdge:bf:15 NanoVolt:ps:180 ParagonSec:bf:140 NanoVolt:ps:380 OptimaCorp:bf:9999 QuasarNet:bf:400 QuasarNet:mi:60 NanoVolt:bf:190 QuasarNet:mi:90 OptimaCorp:bf:160 ApexShield:mi:700 RadiantDev:bf:60 RadiantDev:mi:90 ApexShield:mi:800 ByteGuard:bf:120 ParagonSec:bf:110 MacroEdge:bf:120 NanoVolt:bf:120 QuasarNet:mi:250 RadiantDev:mi:70 OptimaCorp:mi:1019 RadiantDev:mi:65 RadiantDev:mi:80 ApexShield:mi:650 MacroEdge:mi:119 RadiantDev:mi:45 NanoVolt:bf:140 ParagonSec:mi:140 QuasarNet:mi:40 QuasarNet:mi:120 ByteGuard:bf:150 NanoVolt:mi:110 QuasarNet:mi:1200 QuasarNet:mi:900 NanoVolt:mi:80 MacroEdge:mi:90 MacroEdge:mi:120 NanoVolt:mi:95 OptimaCorp:mi:18344 ParagonSec:mi:85 QuasarNet:mi:180 OptimaCorp:mi:5389 QuasarNet:mi:500 ByteGuard:bf:100 ParagonSec:mi:90 ByteGuard:mi:550 OptimaCorp:mi:13360 MacroEdge:mi:80 MacroEdge:mi:220 ParagonSec:mi:110 ByteGuard:mi:450 OptimaCorp:mi:19160 MacroEdge:mi:180 OptimaCorp:mi:16125 MacroEdge:mi:140 MacroEdge:mi:50 OptimaCorp:mi:7758 OptimaCorp:mi:2011
Output
MacroEdge:Blocked NanoVolt:Blocked OptimaCorp:Hacked ParagonSec:Blocked QuasarNet:Hacked RadiantDev:Blocked ApexShield:Hacked ByteGuard:Hacked

Validator 6 Validator
Input
8 VectorLogic:9 UrbanCloud:4 WindWard:5 SilverLine:3 TerraForm:6 XcelTech:7 ApexDef:6 ByteCore:2 93 VectorLogic:ps:11011 WindWard:ps:70 UrbanCloud:ps:120 XcelTech:ps:360 VectorLogic:ps:12800 XcelTech:ps:240 UrbanCloud:ps:90 ByteCore:ps:95 VectorLogic:bf:190 SilverLine:ps:95 ByteCore:bf:280 UrbanCloud:ps:85 VectorLogic:bf:170 SilverLine:ps:85 SilverLine:ps:110 TerraForm:ps:110 ApexDef:ps:85 TerraForm:ps:130 UrbanCloud:bf:310 WindWard:ps:115 XcelTech:ps:77 ApexDef:bf:1800 ApexDef:bf:1700 SilverLine:bf:10 ApexDef:bf:1500 SilverLine:bf:735 XcelTech:ps:480 TerraForm:ps:75 WindWard:ps:140 UrbanCloud:bf:903 TerraForm:bf:1700 WindWard:bf:90 ApexDef:mi:1400 UrbanCloud:bf:140 VectorLogic:bf:140 ByteCore:bf:220 VectorLogic:bf:120 SilverLine:bf:110 UrbanCloud:mi:75 ApexDef:mi:1600 UrbanCloud:mi:14 TerraForm:bf:450 UrbanCloud:mi:50 XcelTech:bf:160 WindWard:bf:130 ByteCore:mi:320 UrbanCloud:mi:30 ByteCore:mi:350 UrbanCloud:mi:40 XcelTech:bf:110 WindWard:bf:120 WindWard:bf:80 TerraForm:bf:900 XcelTech:bf:140 UrbanCloud:mi:580 WindWard:bf:70 TerraForm:bf:16000 XcelTech:mi:120 UrbanCloud:mi:80 UrbanCloud:mi:130 TerraForm:bf:1500 ByteCore:mi:330 TerraForm:bf:150 TerraForm:mi:1300 TerraForm:mi:80 VectorLogic:mi:80 WindWard:mi:60 XcelTech:mi:90 SilverLine:bf:340 XcelTech:mi:80 TerraForm:mi:850 SilverLine:mi:16102 SilverLine:mi:9408 TerraForm:mi:3404 TerraForm:mi:450 TerraForm:mi:40 SilverLine:mi:15323 SilverLine:mi:6460 TerraForm:mi:50 VectorLogic:mi:90 WindWard:mi:7 WindWard:mi:85 SilverLine:mi:4286 VectorLogic:mi:110 SilverLine:mi:14809 WindWard:mi:120 VectorLogic:mi:130 TerraForm:mi:240 TerraForm:mi:130 SilverLine:mi:15781 WindWard:mi:140 SilverLine:mi:17967 TerraForm:mi:180
Output
VectorLogic:Blocked UrbanCloud:Blocked WindWard:Blocked SilverLine:Hacked TerraForm:Hacked XcelTech:Blocked ApexDef:Hacked ByteCore:Hacked

Solution language

Solution

Stub generator input