题目:小s有个古老的游戏机,里面有个类似俄罗斯方块的游戏,但是一次只会在一个随机列上产生一个1x1方块,每消除一行得1分(俄罗斯方块的规则)。
要求:
输入
第一行输入代表界面有n列与掉下了m个方块,第二行输入代表c1,c2。。。cm,每个ci(大于0小于等于n)代表第i个方块刷新在第ci列。
输出
根据输入得到这次游戏能得几分。
思路:初始化一个包含n个0的vector gamemap,遍历第二行输入,给gamemap[ci]+1。再找到gamemap中最小的数,即为所得分数。
通过测试的代码:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
unsigned int n;
int m;
vector<int> gamemap;
unsigned int tmp;
cin >> n;
while (getchar() != '\n')
cin >> m;
if (n == 0 || m == 0)
return 0;
while (n--)
gamemap.push_back(0);
while (cin >> tmp&&m)
{
m--;
gamemap[tmp - 1]++;
if (getchar() == '\n')
break;
}
if (n == 1)
{
cout << m << endl;
return 0;
}
for (unsigned int i = 1; i<gamemap.size(); i++)
{
if (gamemap[0]>gamemap[i])
gamemap[0] = gamemap[i];
}
cout<<gamemap[0]<<endl;
return 0;
}