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 }