Algorithm


Problem Name: 2 AD-HOC - beecrowd | 1836

Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/1836

Pokémon!

 

Por Edson Alves, Faculdade UnB Gama BRBrazil

Timelimit: 1

In the first generation, the creatures from the Pokémon game have four basic attributes: hit points (HP), attack (AT), defense (DF) and speed (SP). These attributes increased as the pokémon gained experience levels winning battles or using special itens.

For each level (from 1 to 99) the value of the attributes can be computed by the following expressions:

e

where BS is the base value of the attribute (hit points, attack, defense and speed), EV is the effort value of the pokémon (it depends on what and how many battles the pokémon entered), IV is the individual value of the pokémon in the given attribute (it is the pokémon "gene") and L is the level.

 

The EV and IV values differentiate two pokémons of same kind, making both evolutions differ. Each attribute must have a integer value: the decimal value must be discarded after the fraction computation.

Given a pokémon, its basic attributes values and level, compute the attributes values according to the expressions.

 

Input

 

The input consists of a series of test cases. The number of test cases T (T ≤ 1.000) is given in the first line of the input.

Each test case is composed by five lines. The first one contains the pokémon name P and its level L (1 ≤ L ≤ 99), separated by a single space. The pokémon's name has only alphanumeric characteres.

The following lines have three integers each: BS (1 ≤ BS ≤ 255), IV (1 ≤ IV ≤ 15) e EV (1 ≤ EV ≤ 262.140), separated by a single space, for each one of the attributes, in this order: HP, AT, DF e SP.

 

Output

 

For each test case the output is formed by five messages, one per line:

  1. Caso #t: P nivel L
  2. HP: HPC
  3. AT: ATC
  4. DF: DFC
  5. SP: SPC
where P is the pokémon's name, L the level and SC the attribute value for level L, according to given expressions, and t is the test case number.

 

 

 

 

Input Samples Output Samples

4

Pikachu 81

35 7 22850

55 8 23140

30 13 17280

90 5 24795

Bulbasaur 50

45 9 20000

49 12 40000

49 3 60000

45 8 10000

Charmander 30

39 5 35000

52 14 60000

43 7 38000

65 15 200000

Squirtle 90

44 10 180000

48 2 220000

65 11 175000

43 8 192000

Caso #1: Pikachu nivel 81

HP: 189

AT: 137

DF: 101

SP: 190

Caso #2: Bulbasaur nivel 50

HP: 131

AT: 91

DF: 87

SP: 70

Caso #3: Charmander nivel 30

HP: 80

AT: 62

DF: 49

SP: 86

Caso #4: Squirtle nivel 90

HP: 292

AT: 200

DF: 235

SP: 195

 

Code Examples

#1 Code Example with C Programming

Code - C Programming


#include <stdio.h>
#include <math.h>

int calcHP(unsigned nivel, unsigned base, unsigned gene, unsigned batalhas);
int calcS(unsigned nivel, unsigned base, unsigned gene, unsigned batalhas);

void main ()
{	

	unsigned gene, batalhas, base, nivel;
	unsigned short casos;
	char pokemon[1000], qtsCasos = 1;

	scanf("%hu", &casos);

	while (casos--)
	{

		scanf(" %s %u %u %u %u", pokemon, &nivel, &base, &gene, &batalhas);

		printf("Caso #%hu: %s nivel %u\n", qtsCasos++, pokemon, nivel);
		printf("HP: %d\n", calcHP(nivel, base, gene, batalhas));

		scanf("%u %u %u", &base, &gene, &batalhas);
		printf("AT: %d\n", calcS(nivel, base, gene, batalhas));

		scanf("%u %u %u", &base, &gene, &batalhas);
		printf("DF: %d\n", calcS(nivel, base, gene, batalhas));

		scanf("%u %u %u", &base, &gene, &batalhas);
		printf("SP: %d\n", calcS(nivel, base, gene, batalhas));

	}

}

int calcHP(unsigned nivel, unsigned base, unsigned gene, unsigned batalhas)
{

	double s;

	s = (((gene + base + (sqrt(batalhas)/8) + 50) * nivel)/50) + 10;

	return (int)s;

}

int calcS(unsigned nivel, unsigned base, unsigned gene, unsigned batalhas)
{

	double s;

	s = (((gene + base + (sqrt(batalhas)/8)) * nivel)/50) + 5;

	return (int)s;

}
Copy The Code & Try With Live Editor

Input

x
+
cmd
4
Pikachu 81
35 7 22850
55 8 23140
30 13 17280
90 5 24795
Bulbasaur 50
45 9 20000
49 12 40000
49 3 60000
45 8 10000
Charmander 30
39 5 35000
52 14 60000
43 7 38000
65 15 200000
Squirtle 90
44 10 180000
48 2 220000
65 11 175000
43 8 192000

Output

x
+
cmd
Caso #1: Pikachu nivel 81
HP: 189
AT: 137
DF: 101
SP: 190
Caso #2: Bulbasaur nivel 50
HP: 131
AT: 91
DF: 87
SP: 70 Caso #3: Charmander nivel 30
HP: 80
AT: 62
DF: 49
SP: 86
Caso #4: Squirtle nivel 90
HP: 292
AT: 200
DF: 235
SP: 195

#2 Code Example with C++ Programming

Code - C++ Programming


#include <bits/stdc++.h>


using namespace std;


int main()
{
	string pk;
	int n;
	int l;
	int bs, ev, iv;
	int caso = 1;
	cin >> n;
	
	while (n--)
	{
		cin >> pk >> l;
		
		cout << "Caso #" << caso++ << ": ";
		cout << pk << " nivel " << l << '\n';
		cin >> bs >> iv >> ev;
		cout << "HP: " << (int)((((iv + bs + sqrt(ev)/8. + 50) * l) / 50) + 10) << '\n';
		cin >> bs >> iv >> ev;
		cout << "AT: " << (int)((((iv + bs + sqrt(ev)/8.) * l) / 50) + 5) << '\n';
		cin >> bs >> iv >> ev;
		cout << "DF: " << (int)((((iv + bs + sqrt(ev)/8.) * l) / 50) + 5) << '\n';
		cin >> bs >> iv >> ev;
		cout << "SP: " << (int)((((iv + bs + sqrt(ev)/8.) * l) / 50) + 5) << '\n';

	}
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
4
Pikachu 81
35 7 22850
55 8 23140
30 13 17280
90 5 24795
Bulbasaur 50
45 9 20000
49 12 40000
49 3 60000
45 8 10000
Charmander 30
39 5 35000
52 14 60000
43 7 38000
65 15 200000
Squirtle 90
44 10 180000
48 2 220000
65 11 175000
43 8 192000

Output

x
+
cmd
Caso #1: Pikachu nivel 81
HP: 189
AT: 137
DF: 101
SP: 190
Caso #2: Bulbasaur nivel 50
HP: 131
AT: 91
DF: 87
SP: 70 Caso #3: Charmander nivel 30
HP: 80
AT: 62
DF: 49
SP: 86
Caso #4: Squirtle nivel 90
HP: 292
AT: 200
DF: 235
SP: 195
Advertisements

Demonstration


Previous
#1832 Beecrowd Online Judge Solution 1832 EBCDIC Solution in C, C++, Java, Js and Python
Next
#1837 Beecrowd Online Judge Solution 1837 Preface Solution in C++, Java, Js and Python