P1093 versión de la estructura de becas

No, no, o gas, sin embargo, tener la estructura a escribir de nuevo y se encontró la misma sensación del Nuevo Mundo

Título Descripción
una escuela primaria recibió recientemente una suma de patrocinio, el cual tiene la intención de llegar a como parte de la excelencia académica de la parte superior de cinco becas para estudiantes. Periodo, cada estudiante tiene un 3 campo logros: lengua, matemáticas, inglés. Presione hacia fuera el tipo de mayor a menor, si dos estudiantes de la misma puntuación, a continuación, las puntuaciones de lenguaje en orden descendente, si dos estudiantes decenas y decenas de idiomas son los mismos, entonces las disposiciones de un pequeño número de estudiantes que se colocan en la parte delantera de la escuela así, ordenando a cada estudiante se determina de forma única.

Tarea: calcular primero la puntuación total basada en la entrada 3 los resultados del curso, y luego ordenar por las reglas anteriores, el orden de salida final del rango de los mejores cinco estudiantes de la escuela número y la puntuación total. Tenga en cuenta que en los cinco estudiantes anteriores, las becas no son los mismos para todos, por lo que debe ordenarse en estricta conformidad con las reglas anteriores. Por ejemplo, en una respuesta correcta, si los datos de salida de las dos primeras líneas (dos por cada línea de salida: la escuela, la puntuación total) son:

7 279
5 279

Los datos son el significado de estas dos líneas: dos estudiantes anotan el número más alto de la escuela seguido por N ° 7, N ° 5. Las dos puntuaciones fueron 279 estudiantes (puntuación total es igual al idioma de entrada, matemáticas, Inglés y los tres sujetos), pero el número es puntuaciones de lenguaje de los estudiantes de la escuela superiores 7. Si los datos de salida de dos de arriba es:

5 279
7 279

Presione el control de errores de salida, no puede anotar.

Entrada formato de
fila común n + 1.

Los primeros actos de un número entero positivo n (≤300), representa el número de los estudiantes participen en la selección de la escuela.

2 a n + 1 líneas, cada línea tiene tres números separados por espacios, cada número entre 0 y 100. 3 j-ésima fila de figuras para representar el número de estudiante J-1 lenguaje de rendimiento de los estudiantes, las matemáticas, Inglés. Cada número de orden de entrada estudiante de la escuela número 1 ~ n (sólo la línea de entrada de datos menos el número 1).

Los datos proporcionados son correctos, no mida.

Los formatos de salida
total de cinco líneas, cada línea es un número entero positivo de dos separadas por un espacio, respectivamente, para los mejores cinco estudiantes de la escuela número y la puntuación total.

#include<bits/stdc++.h>
using namespace std;
typedef struct{
	int num;
	int x,y,z;
	int all;
}stu;
bool judge(stu a,stu b){
	if(a.all>b.all){
		return 1;
	}
	else if(a.all<b.all){
		return 0;
	}
	else{
		if(a.x>b.x){
			return 1;
		}
		else if(a.x<b.x){
			return 0;
		}
		else if(a.num>b.num){
			return 0;
		}
		else{
			return 1;
		}
	}
}
bool judge(stu a,stu b);
int main(){
	stu student[301];
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		student[i].num=i+1;
		cin>>student[i].x>>student[i].y>>student[i].z;
		student[i].all=student[i].x+student[i].y+student[i].z;
	}
	sort(student,student+n,judge);
	for(int i=0;i<5;++i){
		cout<<student[i].num<<' '<<student[i].all<<endl;
	}
    return 0;
}
Publicado 36 artículos originales · ganado elogios 29 · vistas 1020

Supongo que te gusta

Origin blog.csdn.net/bupt_sanqing/article/details/104790855
Recomendado
Clasificación