A:

题意:

有三个项目和n个学生,每个学生都擅长其中一个项目,现在要组成三个人的队伍,其中每个人恰好擅长其中一门,问能组成多少支队伍。

分析:

最多能组成的队伍的个数就是擅长项目里的最少学生。

 1 #include <cstdio>
 2 #include <vector>
 3 #include <algorithm>
 4 
 5 using namespace std;
 6 
 7 int main(void)
 8 {
 9     int n, x;
10     vector<int> a[4];
11     scanf("%d", &n);
12     for(int i = 1; i <= n; ++i)
13     {
14         scanf("%d", &x);
15         a[x].push_back(i);
16     }
17     int aa = a[1].size(), bb = a[2].size(), cc = a[3].size();
18     int ans = min(aa, bb);
19     ans = min(ans, cc);
20     printf("%d\n", ans);
21     for(int i = 0; i < ans; ++i)
22         printf("%d %d %d\n", a[1][i], a[2][i], a[3][i]);
23     
24     return 0;
25 } 
代码君

相关文章: