360笔试第二题
360第二道题:放彩球。写的有些繁琐,有什么好的算法吗?
#include <iostream>
using namespace std;
int main()
{
int a[10000] = { 0 };
int n;
int i, j;
int min = 10000;
int count = 0;
cin >> n;
for (i = 0; i < n; i++)
{
cin >> j;
a[j]++;
}
bool flag = true;
for (i = 0; i < 10000; i++)
{
if (a[i] > 0)
{
if (a[i] == 1)
{
flag = false;
break;
}
else
{
if (min > a[i])
{
min = a[i];
}
}
}
}
for (i = 0; i < 10000; i++)
{
if (a[i] > 0)
{
if (a[i] % min != 0)
{
flag = false;
break;
}
else
{
count += a[i] / min;
}
}
}
if (flag)
{
cout << count << endl;
}
else
{
cout << 0 << endl;
}
return 0;
}
#360公司##笔试题目#