set的使用02
1590: 刪除數
Time Limit: 1 Sec Memory Limit: 128 MB
[Submit][Status][Web Board]
Description
zcc有n個數(a1,a2,…,an),他希望進行k次刪除一個數的操作,使得最后剩下的n?k
個數中有最多的不同的數,保證1≤n≤100,0≤k<n,0≤ai≤n.(對于任意1≤i≤n)
Input
多組數據(最多100
組)
對于每組數據:
第一行:一個數n
表示數的個數
接下來一行:n
個數,依次為a1,a2,…,an
接下來一行:一個數k
表示操作數
Output
對于每組數據:
輸出最多剩下的不同的數的個數
Sample Input
4
1 3 1 2
1
Sample Output
3
AC代碼~:
#include <stdio.h> #include <set> using namespace std; int main() {int n;while(~scanf("%d",&n)){set<int>s;int x,m,k,S,num;for(int i = 0; i < n; i++){scanf("%d",&x);s.insert(x);}scanf("%d",&k);m = n - k;//需要保留的數字個數S = s.size();/*根據set的特性,s.size()為set中數的個數(也就是輸入數據中不同數的個數)*/if( S > m)num = m;elsenum = S;printf("%d\n",num);}return 0; }總結
- 上一篇: 关于strlwr,strupr等函数在此
- 下一篇: set的使用03(较多的操作函数)