hdu 5210 Delete

来源:互联网 发布:淘宝外贸童装货源 编辑:程序博客网 时间:2024/05/29 06:27

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

 

问题描述
wld有n个数(a1,a2,...,an),他希望进行k次删除一个数的操作,使得最后剩下的nk个数中有最多的不同的数,保证1n100,0k<n,1ain(对于任意1in)
输入描述
多组数据(最多100组)对于每组数据:第一行:一个数n表示数的个数接下来一行:n个数,依次为a1,a2,,an接下来一行:一个数k表示操作数
输出描述
对于每组数据:输出最多剩下的不同的数的个数
输入样例
41 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<iostream>#include<cstring>#define maxn 100+5using 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<n;i++){int x;cin>>x;if(!mapp[x]) sum++;mapp[x]++; }int k;cin>>k;k-=(n-sum);if(k<=0) cout<<sum<<endl;else cout<<sum-k<<endl;}return 0;} 


0 0
原创粉丝点击