hdu 5210 Delete

best code 2015/4/26 第一题,简直水的不行

 

问题描述
wld有n个数(a1,a2,...,an),他希望进行k次删除一个数的操作,使得最后剩下的nk个数中有最多的不同的数,保证1n100,0k<n,1ain(对于任意1in)
输入描述
多组数据(最多100组)
对于每组数据:
第一行:一个数n表示数的个数
接下来一行:n个数,依次为a1,a2,,an
接下来一行:一个数k表示操作数
输出描述
对于每组数据:
输出最多剩下的不同的数的个数
输入样例
4
1 3 1 2 
1
输出样例
3
Hint
如果删去第一个1:
在[3,1,2]中有3个不同的数
如果删去3:
在[1,1,2]中有2个不同的数
如果删去第二个1:
在[1,3,2]中有3个不同的数
如果删去2:
在[1,3,1]中有1个不同的数
 
  
#include
#include
#define maxn 100+5
using namespace std;
int mapp[maxn];
int main()
{
	int n;
	while(cin>>n)
	{
		int sum=0;
		memset(mapp,0,sizeof(mapp));
		for(int i=0;i>x;
			if(!mapp[x]) sum++;
			mapp[x]++; 
		}
		int k;
		cin>>k;
		k-=(n-sum);
		if(k<=0) cout<


你可能感兴趣的:(hdu,数学题)