-
Notifications
You must be signed in to change notification settings - Fork 128
/
solucao.cs
81 lines (63 loc) · 3.08 KB
/
solucao.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
Desafio
O Governador do Estado quer saber sobre as taxas de crescimento das cidades. De acordo com
dados da população e a taxa de crescimento de duas cidades quaisquer (A e B), ele quer que você
calcule quantos anos levará para que a cidade menor (A) cresça mais em população que a cidade
maior (B).
Claro que o Governador quer saber apenas para as cidades cuja taxa de crescimento da cidade
A é maior do que a taxa de crescimento da cidade B, portanto, previamente já separou para você
apenas os casos de teste que tem a taxa de crescimento maior para a cidade A.
Desenvolva um programa que apresente o tempo, em anos, para cada caso.
Porém, em alguns casos o tempo pode ser muito grande, e o Governador não se interessa em saber
exatamente o tempo para estes casos, já que ele pode não estar mais eleito. Basta que você informe,
nesta situação, a mensagem "Mais de 1 século.".
Entrada
A primeira linha da entrada contém um único inteiro T, indicando o número de casos de teste
(1 ≤ T ≤ 3000). Cada caso de teste contém 4 números: dois inteiros PA e PB (100 ≤ PA < 1000000,
PA < PB ≤ 1000000) indicando respectivamente a população de A e B, e dois valores G1 e G2
(0.1 ≤ G1 ≤ 10.0, 0.0 ≤ G2 ≤ 10.0, G2 < G1) com um digito após o ponto decimal cada, indicando
respectivamente o crescimento populacional de A e B (em percentual).
Atenção: A população é sempre um valor inteiro, portanto, um crescimento de 2.5 % sobre uma
população de 100 pessoas resultará em 102 pessoas, e não 102.5 pessoas, enquanto um crescimento
de 2.5% sobre uma população de 1000 pessoas resultará em 1025 pessoas. Além disso, não utilize
variáveis de precisão simples para as taxas de crescimento.
Saída
Imprima, para cada caso de teste, quantos anos levará para que a cidade A ultrapasse a cidade
B em número de habitantes. Obs.: se o tempo for mais do que 100 anos o programa deve apresentar
a mensagem: Mais de 1 seculo. Neste caso, é melhor interromper o programa imediatamente após
passar de 100 anos, caso contrário você poderá receber como resposta da submissão deste problema
"Time Limit Exceeded".
*/
using System;
class CrescimentoPopulacional {
static void Main(string[] args) {
int t = Convert.ToInt32(Console.ReadLine());
int pa, pb;
int anos;
double[] arrayList = new double[4];
double cpa, cpb;
for (int i = 0; i < t; i++)
{
anos = 0;
string[] valores = Console.ReadLine().Split();
pa = int.Parse(valores[0]);
pb = int.Parse(valores[1]);
cpa = double.Parse(valores[2]);
cpb = double.Parse(valores[3]);
while (pa <= pb && anos < 101)
{
pa += (int)((pa*cpa)/100);
pb += (int)((pb*cpb)/100);
anos++;
if (anos > 100)
{
Console.WriteLine("Mais de 1 seculo.");
}
}
if (anos <= 100)
{
Console.WriteLine(anos + " anos.");
}
}
}
}