#T583206. 拼成三角形的个数(用set和pair实现)

拼成三角形的个数(用set和pair实现)

题目描述

输入n个正整数,求以这n个正整数为长度的边长能拼成多少个不同的三角形。每个正整数表示的边长只有一个,所以不能用一个整数拼成一个等边三角形。两个三角形如果有一条边长度不相同,就是两个不同的三角形。注意:一个三角形,经过旋转、翻转等,得到的仍然是同一个三角形。假设三角形三条边长为a, b, c,我们可以约定a≤b≤c,这样(a, b, c)就唯一地代表了这个三角形。

本题要求用set和pair实现。

输入格式

输入数据第一行为一个正整数n,3≤n≤100。第二行为n个≤1000的正整数,用空格隔开。

输出格式

输出数据占一行,为求得的答案。

输入输出样例 #1

输入 #1

8
7 7 7 2 6 6 1 3

输出 #1

11

说明/提示

样例说明:

这11个三角形是:(1, 6, 6), (1, 7, 7), (2, 6, 6), (2, 6, 7), (2, 7, 7), (3, 6, 6), (3, 6, 7), (3, 7, 7), (6, 6, 7), (6, 7, 7), (7, 7, 7)。

本题出处

本题源自以下教材的编程习题:王桂平, 周思益, 周迎川著. C++编程与信息学竞赛数学基础, 北京大学出版社, 2025年7月出版.