Stack Marker


Enviar solució

Punts: 7 (parcial)
Temps Límit: 1.0s
Límit de memòria: 64M

Autor/a:
tipus del problema
Bucles simples, Matemàtiques
Categoria
Problemes fets per Alumnes
Llenguatges permesos
Bash, C#, C++, Java, Kotlin, Python

Estas amb el teu grup i després de wipear per falta de mitigacio et proposen a ti, que ets programador, calcular quina cuantitat de atacs tu i el teu equip podeu aguantar donades certes circumstancies.
No nomes vols fer aixo sino que tambe vols poder aprofitar aquest calcul per a quan hagis de jugar amb randoms.

Aixi doncs et proposas a fer-ho de manera realista (tenint en compte que es molt probable de que no tot el mon s'agrupara en la posicio del atac).

Has de tenir en compte que si l'atac no golpeja a ningu totes les persones vives han de morir.

Has de calcular el impacte del atac amb la seguent funcio: Image

On: \(a\) representa el poder de l'atac, \(b\) representa el nombre de jugadors golpejats, \(c\) representa la defensa del jugador i \(d\) representa el nivell del jugador (\(min(d)\) i \(max(d)\) representen els valors minims i maxims de possibles de \(d\) respectivament).

Recorda que a dalt esta representada la part positiva de la funcio, lo que significa que si el resultat es negatiu passara a 0 automaticament.

Es molt important que tingues en compte el tipus de dades que tractes en aquesta funcio (String,int,float,double,etç).


Entrada

La primera línea es el nombre de casos de prova. Cada cas conte un nombre \(1<=A<=1000000\), el poder de l'atac, \(1<=B<=5\), el nombre de vegades que el atac golpeja, \(-5<=X<=5\) i \(-5<=Y<=5\), la posicio del atac (X y Y dins de una matriu de dos dimensions), \(3<=C<=5\), el radi del atac (es un area cuadrada al voltant de la posicio del atac) i \(1<=D<=8\) el nombre de jugadors.

Per cada jugador la primera linea representa el nom, \(-5<=X<=5\) i \(-5<=Y<=5\), la posicio del jugador, \(1<=E<=80\), el nivell del jugador i \(0<=F<=10000\) la defensa del jugador.


Sortida

Per cada cas hauras de escriure en la primera linea "PROG" si hi ha algun supervivient o "WIPE" si han mort tots.
Després \(D\) lineas on \(D\) es el nom de jugadors.
Per cada una escriuras el nom del jugador, el nivell del jugador, la seva vida restant o "MORT" si no te vida i la cuantitat de vida que hagessuin necessitat per a sobreviure l'atac que els va matar (Ex: Si un atac fa 1000 de dany i el jugador te 500 de vida, aquest valor seria 501, aquest valor sera 1 si la rao de la mort es per que ningu a rebut l'atac). Amb el seguent format:

WIPE
DIONISIO-38-MORT-150829
CECILIO-22-MORT-192653
GREGORIO-73-MORT-116241
GODOFREDO-39-MORT-1

PROG
GREGORIO-13-35594/35594HP-0
TEODOMIRA-80-40054/40054HP-0

WIPE
ALTAGRACIA-34-MORT-1

Exemple d'Entrada

2
606405
5
-3 2
3
4
DIONISIO
-2 0
38
47607
7901
CECILIO
-2 3
22
7066
9096
GREGORIO
-3 2
73
79045
7517
GODOFREDO
2 5
39
92535
9307
703301
0
5 4
4
2
GREGORIO
-5 -3
13
35594
6037
TEODOMIRA
2 1
80
40054
3966

Exemple de Sortida

WIPE
DIONISIO-38-MORT-150829
CECILIO-22-MORT-192653
GREGORIO-73-MORT-116241
GODOFREDO-39-MORT-1

PROG
GREGORIO-13-35594/35594HP-0
TEODOMIRA-80-40054/40054HP-0

Comentaris


  • -1
    joelMolero  comentat a les feb. 4, 2023, 6:23 p.m. editat

    Fumada nivel dios :V. Viva el piton :V