计算输入序列能组成三角形的个数
B. Triangle 第八屆北京郵電大學(xué)程序設(shè)計競賽 - 熱身賽 (2)
時間限制 1000 ms 內(nèi)存限制 65536 KB題目描述
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;
}
轉(zhuǎn)載于:https://www.cnblogs.com/candycloud/p/3591788.html
總結(jié)
以上是生活随笔為你收集整理的计算输入序列能组成三角形的个数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟环境vitualenv的使用
- 下一篇: sorted_一个函数秒杀冒泡排序算法和