月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种。
若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给出全国各地各种月饼的销量,要求你从中找出销量冠军,认定为最好吃的月饼。
输入格式:
输入首先给出两个正整数 N(≤1000)和 M(≤100),分别为月饼的种类数(于是默认月饼种类从 1 到 N 编号)和参与统计的城市数量。
接下来 M 行,每行给出 N 个非负整数(均不超过 1 百万),其中第 i 个整数为第 i 种月饼的销量(块)。数字间以空格分隔。
输出格式:
在第一行中输出最大销量,第二行输出销量最大的月饼的种类编号。如果冠军不唯一,则按编号递增顺序输出并列冠军。数字间以 1 个空格分隔,行首尾不得有多余空格。
输入样例:
5 3
1001 992 0 233 6
8 0 2018 0 2008
36 18 0 1024 4
输出样例:
2018
3 5
| 代码长度限制 | 时间限制 | 内存限制 |
| 16KB | 200ms | 64MB |
代码:
#include<bits/stdtr1c++.h>
using namespace std;
struct mooncake {
int id, sum = 0;
} m[1005]; //将月饼作为结构体的形式进行储存,属性有编号和销售总量,销售总量初始时为0
int cmp(mooncake a, mooncake b) {
return a.sum == b.sum ? a.id<b.id : a.sum>b.sum; //按销售总量降序排列,若相同则按编号升序排列
}
int main() {
int N, M, t;
cin >> N >> M;
while (M--) {
for (int i = 0; i < N; i++) {
cin >> t;
m[i].id = i + 1; //数组下标从0开始,但是编号从1开始,要注意加1
m[i].sum += t; //将每个城市的销售量累加
}
}
sort(m, m + N, cmp); //对结构体数组自定义排序
cout << m[0].sum << endl; //输出最高的销售总量
cout << m[0].id; //输出id
for (int i = 1; i < N; i++) { //此循环用于遍历查找是否有多个编号的销售量相同,有则将剩下编号的输出
if (m[i].sum == m[0].sum)
cout << " " << m[i].id;
}
return 0;
}
标签:输出,20,1092,月饼,int,sum,mooncake,编号
From: https://www.cnblogs.com/Fare-well/p/16648980.html