PAT-B 1092 Los mejores pasteles de luna (20 puntos)

1092 Los mejores pasteles de luna (20 puntos)

Los pasteles de luna son uno de los pasteles tradicionales chinos más prestigiosos, desde la dinastía Tang se han desarrollado cientos de variedades.
Si desea comparar los "mejores" pasteles de luna, inevitablemente causará una tormenta sangrienta en la industria alimentaria ... Aquí usamos números para dar las ventas de varios pasteles de luna en todo el país y le pedimos que encuentre al campeón de ventas. .Reconocido como el pastel de luna más delicioso.

Formato de entrada: La
entrada primero da dos números enteros positivos N (≤1000) y M (≤100), que son el número de tipos de pasteles de luna (por lo que los tipos de pasteles de luna predeterminados están numerados de 1 a N) y el número de ciudades que participan en el Estadísticas.
En las siguientes M filas, cada fila da N números enteros no negativos (ninguno de los cuales excede 1 millón), donde el i-ésimo entero es el volumen de ventas (bloque) del i-ésimo pastel de luna. Los números están separados por espacios

Formato de salida:

El mayor volumen de ventas se emite en la primera fila y el número de tipo del pastel de luna con el mayor volumen de ventas se emite en la segunda fila. Si el campeón no es único, los campeones empatados se distribuirán en orden ascendente. Los números están separados por 1 espacio y no debe haber espacios adicionales al principio y al final de la línea.

Muestra de entrada:

5 3
1001 992 0 233 6
8 0 2018 0 2008
36 18 0 1024 4
Ejemplo de salida:
2018
3 5

Idea:
utilice la definición de estructura. La variable de estructura es una matriz, que se utiliza para almacenar las ciudades que participan en la votación. El miembro de la estructura es una serie de pasteles de luna.

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct test
{
    
    
int mooncake[1001] = {
    
     0 };

}city[101] = {
    
    0};


int main()
{
    
       
	int count = 0;
	int moon_cake[1000] = {
    
     0 };
	int M,N;			 					//M表示城市个数.N表示月饼的种类数
	int maxn = -1000,id=0;

	cin>>N>>M ;
	int temp = N;
	int sum[1001] = {
    
    0};
											//接下来 M 行,每行给出 N 个非负整数
	for (int i = 0; i < M; i++)	
	{
    
    
		for (int j = 1; j <= N; j++)
		{
    
    
			cin >> city[i].mooncake[j];
			sum[j]+=city[i].mooncake[j];  	 //计算每个种类在不同城市得到销量
		}
	}

	for (int i = 1; i <= N; i++)
	{
    
    
		if (maxn <sum[i])
		{
    
    
			maxn = sum[i];  //获得最大值
		}
	}

	cout << maxn << endl;
    
	for (int i = 1; i <= N; i++)   			 //控制格式,用count来控制最后的空格输出
	{
    
    
		if (maxn == sum[i])
		{
    
    
			count++; 
		}
	}

	for (int i = 1; i <= N; i++)
	{
    
    
		if (maxn == sum[i])
		{
    
    
			if (count ==1) printf("%d\n",i);    //遇到倒数第一个数就直接换行。
			else printf("%d ", i);
			count--;
		}
	}
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/SKMIT/article/details/113832607
Recomendado
Clasificación