程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> codeforces Towers 題解

codeforces Towers 題解

編輯:C++入門知識

Little Vasya has received a young builder’s kit. The kit consists of several wooden bars, the lengths of all of them are known. The bars can be put one on the top of the other if their lengths are the same.

Vasya wants to construct the minimal number of towers from the bars. Help Vasya to use the bars in the best way possible.

Input

The first line contains an integer N (1?≤?N?≤?1000) — the number of bars at Vasya’s disposal. The second line contains N space-separated integers li — the lengths of the bars. All the lengths are natural numbers not exceeding 1000.

Output

In one line output two numbers — the height of the largest tower and their total number. Remember that Vasya should use all the bars.

Sample test(s) input
3
1 2 3
output
1 3
input
4
6 5 6 7
output
2 3

題意就是計算一個數組中的最大重復數和去重後的數據量。

所以本題就是數組去重知識的運用,和增加一個記錄,記錄最大重復數。


void Towers()
{
	unsigned n;
	cin>>n;
	int *A = new int[n];

	for (unsigned i = 0; i < n; i++)
	{
		cin>>A[i];
	}
	sort(A, A+n);
	int j = 1, h = 1, max_h = 1;
	for (unsigned i = 1; i < n; i++)
	{
		if (A[i] != A[i-1])
		{
			A[j++] = A[i];
			max_h = max(max_h, h);
			h = 1;
		}
		else h++;
	}
	max_h = max(max_h, h);
	cout<


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved