解决思路
- 初始化:定义一个结构体 node 来存储每一天的可用人数和天的编号。
- 读取输入:读取每个人的可用性,并统计每一天的可用人数。
- 排序:根据每一天的可用人数进行排序。
- 输出结果:输出可用人数最多的天的编号,如果有多天满足条件,用逗号分隔。
#include <bits/stdc++.h> #define ll long long using namespace std; const int N = 1e3 + 10; // 定义一个结构体来存储每一天的可用人数和天的编号 struct node { int x, id; }; // 定义一个数组来存储每一天的可用人数和天的编号 node a[6]; int n; // 比较函数,用于按照可用人数对天进行排序 bool cmp(node a, node b) { return a.x > b.x; } int main() { // 初始化每一天的可用人数和天的编号 for (int i = 1; i <= 5; i++) { a[i].x = 0; a[i].id = i; } // 读取感兴趣参加活动的人数 cin >> n; // 读取每个人的可用性,并统计每一天的可用人数 for (int i = 1; i <= n; i++) { for (int j = 1; j <= 5; j++) { char c; cin >> c; if (c == 'Y') a[j].x++; } } // 按照可用人数对天进行排序 sort(a + 1, a + 1 + 5, cmp); // 输出可用人数最多的天的编号 cout << a[1].id; for (int i = 2; i <= 5; i++) { if (a[i].x == a[1].x) { cout << "," << a[i].id; } } return 0; }