Team Olympiad

简介: Team Olympiad

文章目录

一、Team Olympiad

总结


一、Team Olympiad

本题链接:A. Team Olympiad


题目:


A. Team Olympiad


time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

The School №0 of the capital of Berland has n children studying in it. All the children in this school are gifted: some of them are good at programming, some are good at maths, others are good at PE (Physical Education). Hence, for each child we know value ti:


ti = 1, if the i-th child is good at programming,

ti = 2, if the i-th child is good at maths,

ti = 3, if the i-th child is good at PE

Each child happens to be good at exactly one of these three subjects.


The Team Scientific Decathlon Olympias requires teams of three students. The school teachers decided that the teams will be composed of three children that are good at different subjects. That is, each team must have one mathematician, one programmer and one sportsman. Of course, each child can be a member of no more than one team.


What is the maximum number of teams that the school will be able to present at the Olympiad? How should the teams be formed for that?


Input

The first line contains integer n (1 ≤ n ≤ 5000) — the number of children in the school. The second line contains n integers t1, t2, …, tn (1 ≤ ti ≤ 3), where ti describes the skill of the i-th child.


Output

In the first line output integer w — the largest possible number of teams.


Then print w lines, containing three numbers in each line. Each triple represents the indexes of the children forming the team. You can print both the teams, and the numbers in the triplets in any order. The children are numbered from 1 to n in the order of their appearance in the input. Each child must participate in no more than one team. If there are several solutions, print any of them.


If no teams can be compiled, print the only line with value w equal to 0.


Examples

input

7

1 3 1 3 2 1 2

output

2

3 5 2

6 7 4

input

4

2 1 1 2

output

0

本博客给出本题截图

5.png

题意:每个孩子都擅长一个技能,共三个技能:1,2,3;每个孩子都只能在一个队伍中,每个队伍由三个孩子组成,并且这三个孩子需要会不同的技能,问最多能组几个队出来,并写出这些队伍中孩子的编号

AC代码

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 5010;
int a[N];
int p[5][N];
int cnt1, cnt2, cnt3;
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i ++ ) 
    {
        cin >> a[i];
        if (a[i] == 1) 
            p[0][cnt1 ++] = i;
        else if (a[i] == 2)
            p[1][cnt2 ++] = i;
        else if (a[i] == 3)
            p[2][cnt3 ++] = i;
    }
    int t = cnt1;
    t = min(t, cnt2);
    t = min(t, cnt3);
    cout << t << endl;
    for (int i = 0; i < t; i ++ )
    {
        for (int j = 0; j < 3; j ++ ) 
            cout << p[j][i] << ' ';
        puts("");
    }
    return 0;
}

总结

p数组二维不可以开成N / 3


目录
相关文章
|
1月前
|
人工智能 安全
openAI的Red Team
openAI的Red Team
46 3
|
网络安全 数据安全/隐私保护
Ansible之 Tower使用User和Team管理访问权限的笔记
写在前面 这部分内容没有太大的差别,所以用旧版本的 Ansible Tower 博文内容涉及: 创建 Tower 用户即角色添加 创建 Tower 团队 即角色添加 食用方式: 需要了解 Ansible 理解不足小伙伴帮忙指正
207 0
Ansible之 Tower使用User和Team管理访问权限的笔记
Team
Team
126 0
Team
The Famous ICPC Team Again
题目描述 When Mr. B, Mr. G and Mr. M were preparing for the 2012 ACM-ICPC World Final Contest, Mr. B had collected a large set of contest problems for their daily training. When they decided to take training, Mr. B would choose one of them from the problem set.
102 0
|
Oracle 关系型数据库 Unix

热门文章

最新文章