DDoS


Submit solution

Points: 10
Time limit: 5.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C#, Go, Java, Python

Desitjem implementar una sistema d'alerta d'atacs de denegació de servei (DDoS). Aquests atacs consisteixen en que l'atacant realitza una gran quantitat de connexions utilitzant una botnet.

Una forma de prevenir aquests atacs és mitjançant una política que denegui les connexions si aquestes es produeixen amb massa freqüència (connexions/temps).

Implementarem al firewall un sistema de detecció d'atacs DDoS, que alerti quan es produeixen més connexions de les permeses en un període de temps.

Establirem aquesta política a 4 connexions en 1 segon. Cada cop que es superi aquesta freqüència es mostrarà una alerta.

Input Format

La entrada consisteix en una seqüència de floats que indiquen el temps (T) que ha passat entre una connexió i la següent.

La seqüencia acaba amb -1.

Constraints

-

Output Format

S'imprimirà el missatge "DDos alert", cada cop que es superin les 4 connexions en menys d'1 segon.

Test Case 1

Input
0.2  0.2  0.3      -1.0
Output
DDoS alert
Explanation

Es produeix la primera connexió

Passen 0.1 segons i es produeix la segona connexió

Passen 0.2 segons i es produeix la tercera connexió

Passen 0.3 segons i es produeix la quarta connexió

S'han produït 4 connexions en 0.6 segons

Test Case 2

Input
0.1  0.2  0.3      -1
Output
DDoS alert
Explanation

Es produeix la primera connexió

Passen 0.5 segons i es produeix la segona connexió

Passen 0.2 segons i es produeix la tercera connexió

Passen 0.3 segons i es produeix la quarta connexió

S'han produït 4 connexions en 1 segon, és a dir, no s'ha superat el límit.

Test Case 3

Input
0.5  0.2  0.3      -1
Output
Explanation

Es produeix la primera connexió

Passen 0.5 segons i es produeix la segona connexió

Passen 0.2 segons i es produeix la tercera connexió

Passen 0.3 segons i es produeix la quarta connexió

Passen 0.2 segons i es produeix la cinquena connexió

Entre la segona i la cinquena connexió han passat 0.7 segons, és a dir, s'ha superat el límit.

Test Case 4

Input
0.5  0.2  0.3  0.2      -1
Output
DDoS alert
Explanation

S'han produït dues alertes:

entre la segona i cinquena connexió (0.2+0.3+0.2)

i entre la quarta i la setena (0.2+0.6+0.1).

Test Case 5

Input
0.5  0.2  0.3  0.2  0.6  0.1      -1
Output
DDoS alert
DDoS alert
Explanation

0.2+0.3+0.2

0.3+0.2+0.1

0.2+0.1+0.1

Test Case 6

Input
0.5  0.2  0.3  0.2  0.1  0.1      -1
Output
DDoS alert
DDoS alert
DDoS alert

Test Case 7

Input
0.5  0.2  0.3  1.2  0.1  0.1  0.1  0.1  0.7  0.4  0.1  0.2  0.6      -1
Output
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert

Test Case 8

Input
0.3  0.3  0.3  0.2  0.2  0.5  0.2  0.1  0.1  0.1  0.1  0.7  0.4  0.1  0.2  0.6  0.9  0.1      -1
Output
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert
DDoS alert

Authorship: Gerard Falcó

CC BY-NC-SA 4.0