-
Notifications
You must be signed in to change notification settings - Fork 0
/
p108.java
144 lines (128 loc) · 5.57 KB
/
p108.java
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package com.caiomed03.aceptaelreto;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;
public class p108 {
static class FastReader {
BufferedReader br;
StringTokenizer st;
public FastReader() {
br = new BufferedReader(
new InputStreamReader(System.in));
}
String nextLine() {
String str = "";
try {
str = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
boolean hasNext() {
if (st != null && st.hasMoreTokens()) {
return true;
}
String tmp;
try {
br.mark(1000);
tmp = br.readLine();
if (tmp == null) {
return false;
}
br.reset();
} catch (IOException e) {
return false;
}
return true;
}
}
public static void main(String[] args) {
FastReader sc = new FastReader();
while (sc.hasNext()) {
double desayunos = 0;
double comidas = 0;
double meriendas = 0;
double cenas = 0;
double copas = 0;
double suma = 0;
int cont0 = 0;
int contC = 0;
while (true) {
// Recojo la línea correspondiente con el split para evitar los espacios de más
String[] cc = sc.nextLine().split(" ");
String a = cc[0];
double b = Double.parseDouble(cc[1]);
// Si se da la condicion de fin de caso de prueba
if (a.equals("N") && b == 0) {
break;
}
// Segun la letra correspondiente se le asigna el valor de b a
// la variable correspondiente. Se tiene un contador denominado
// como "cont0" para calcular la media.
switch (a) {
case "D": desayunos += b; suma += b; break;
case "A": comidas += b; suma += b; contC++; break;
case "M": meriendas += b; suma += b; break;
case "I": cenas += b; suma += b; break;
case "C": copas += b; suma += b; break;
default: break;
}
cont0++;
}
// Se determina el menor y mayor.
double mayor = Math.max(desayunos, Math.max(comidas, Math.max(meriendas, Math.max(cenas, copas))));
double menor = Math.min(desayunos, Math.min(comidas, Math.min(meriendas, Math.min(cenas, copas))));
// Segun cual variable sea la mayor se determina si se repite o no y
// se aplica el formato correspondiente.
if (mayor == desayunos) {
if(desayunos!=comidas && desayunos!=cenas && desayunos!=meriendas && desayunos!=copas) System.out.print("DESAYUNOS#");
else System.out.print("EMPATE#");
}
else if(mayor==comidas){
if(comidas!=desayunos && comidas!=cenas && comidas!=meriendas && comidas!=copas) System.out.print("COMIDAS#");
else System.out.print("EMPATE#");
}
else if(mayor==meriendas){
if(meriendas!=desayunos && meriendas!=cenas && comidas!=meriendas && meriendas!=copas) System.out.print("MERIENDAS#");
else System.out.print("EMPATE#");
}
else if(mayor==cenas){
if(cenas!=desayunos && meriendas!=cenas && cenas!=meriendas && cenas!=copas) System.out.print("CENAS#");
else System.out.print("EMPATE#");
}
else if(mayor==copas){
if(copas!=desayunos && copas!=cenas && copas!=meriendas && meriendas!=copas) System.out.print("COPAS#");
else System.out.print("EMPATE#");
}
// Lo mismo pero con el menor.
if (menor == desayunos) {
if (desayunos != comidas && desayunos != cenas && desayunos != meriendas && desayunos != copas) System.out.print("DESAYUNOS#");
else System.out.print("EMPATE#");
}
else if(menor==comidas){
if(comidas!=desayunos && comidas!=cenas && comidas!=meriendas && comidas!=copas) System.out.print("COMIDAS#");
else System.out.print("EMPATE#");
}
else if(menor==meriendas){
if(meriendas!=desayunos && meriendas!=cenas && comidas!=meriendas && meriendas!=copas) System.out.print("MERIENDAS#");
else System.out.print("EMPATE#");
}
else if(menor==cenas){
if(cenas!=desayunos && meriendas!=cenas && cenas!=meriendas && cenas!=copas) System.out.print("CENAS#");
else System.out.print("EMPATE#");
}
else if(menor==copas){
if(copas!=desayunos && copas!=cenas && copas!=meriendas && meriendas!=copas) System.out.print("COPAS#");
else System.out.print("EMPATE#");
}
// Calculo de la media
double media = suma/(double) cont0;
// Se determina si las comidas superan la media
if (comidas/contC > media) System.out.println("SI");
else System.out.println("NO");
}
}
}