Amy learned equilateral triangle today and was interested in it very much.
After school, she took out her toys as usual and surprisingly found so many
sticks! As the plot goes, she started to count how many different equilateral
triangles they could form. However, there‘re countless sticks and it was not
easy for such a little girl to finish this task. Help her!
An equilateral
triangle is such a triangle, that the length of its three sides are equal. Two
equilateral triangle are different if and only if they have different lengths
of sides. Amy only uses one stick to form one side of a triangle.
The input contains several cases. An integer T(T≤100) will
exist in the first line of input, indicating the number of test cases.
Each
test case begins with the number of sticks N(N≤100). The
following line contains N numbers length[i]
(1≤length[i]≤100), indicating all the lengths of sticks.
Output the answer for each test case in respective lines.
2
3
2 3 1
4
3 3 3 3
0
1
一个测试通过代码:
#include <iostream>
#include <map>
using namespace
std;
int solution(int *org, int len)
{
int res =
0;
map<int, int> data;
for
(int i = 0; i < len; ++i) {
data[org[i]]++;
}
map<int,
int>::iterator itr = data.begin();
while (itr !=
data.end()) {
if (itr->second
>= 3)
++res;
++itr;
}
return res;
}
int
main()
{
int t;
cin >>
t;
for (int i = 0; i < t; ++i)
{
int
n;
cin >>
n;
int *data = new
int[n];
for (int j = 0; j < n;
++j) {
cin
>> data[j];
}
cout << solution(data, n)
<< endl;
delete []
data;
}
return 0;
}
计算输入序列能组成三角形的个数,布布扣,bubuko.com
原文:http://www.cnblogs.com/candycloud/p/3591788.html