Tabla de contenido
7-9 Competencia del equipo de programación
Titulo original:
Las reglas de la competencia del equipo de programación son: cada equipo está compuesto por varios miembros; todos los miembros compiten de forma independiente; la puntuación del equipo participante es la suma de las puntuaciones de todos los miembros; el equipo con la puntuación más alta gana.
Ahora, dados los resultados del juego de todos los jugadores, escriba un programa para encontrar el equipo campeón.
Formato de entrada:
La primera línea de entrada da un número entero positivo N (≤104), que es el número total de todos los jugadores participantes. Luego hay N líneas, cada línea da la puntuación de un jugador, el formato es: 队伍编号-队员编号 成绩
, que 队伍编号
es un número entero positivo de 1 a 1000, 队员编号
es un número entero positivo de 1 a 10, 成绩
es un número entero de 0 a 100.
Formato de salida :
Introduzca el número y la puntuación total del equipo ganador en una línea, separados por un espacio. Nota: El título garantiza que el equipo ganador es único.
.
Ideas para resolver problemas:
- Importe
readline
el módulo y cree un objeto de interfaz: primeroreadline
introduzca el módulo y usecreateInterface
métodos para crear un objeto de interfazrl
. Este objeto establece el flujo de entrada en entrada estándar. - Leer entrada y almacenar: al escuchar
'line'
eventos, almacene cada línea de entrada en una matrizbuf
. - Analiza la entrada:
buf.splice(1)
obteniendo el texto de entrada comenzando en la segunda línea y almacenándolo entext
. - Calcule la suma de las puntuaciones: utilice un bucle para iterar sobre
text
cada cadena de la matriz. Divida la cadena mediantesplit
el método, obtenga el nombre del equipo y la puntuación, y guárdelos en el objetoterm
. Siterm
la clave para el nombre del equipo no existe en el objeto, se le agregaterm
y la puntuación se inicializa a 0. Luego, la puntuación se suma a la clave correspondiente. - Encuentre el equipo con la puntuación más alta: use un bucle para iterar sobre
term
cada clave en el objeto, comparando la puntuación con la puntuación más alta actual. Si la puntuación actual supera la puntuación máxima, se actualizan la puntuación máxima y el nombre del equipo ganador. - Resultados de salida: envíe el nombre del equipo ganador y la puntuación total a la consola.
.
Código JavaScript (nodo):
const r = require("readline");
const rl = r.createInterface({
input: process.stdin
});
let buf = [];
rl.on('line', (input) => buf.push(input));
rl.on('close', () => {
const text = buf.splice(1)
let term = {
};
for (let i = 0; i < text.length; i++) {
const duwu = text[i].split("-")[0]
const score = parseInt(text[i].split(" ")[1])
if (!term.hasOwnProperty(duwu)) {
term[duwu] = 0
}
term[duwu] += score
}
let sum = 0, winner = "";
for (let i in term) {
let score = term[i]
if (sum < score) {
sum = score
winner = i;
}
}
console.log(winner + " " + sum);
});
.