A
link
其實,只要有第一次,那麼下次隨意找一個佇列裡有的數加\(k-1\)個進去,加上佇列裡那一個刪掉\(k\)個,到最後一次肯定是剩\(k-1\)個。
沒有第一次,就是\(n\)。
點選檢視程式碼
#include<bits/stdc++.h>
using namespace std;
int t;
int n,k;
int a[105];
int mp[105];
void qwq(){
memset(mp,0,sizeof(mp));
cin >> n >> k;
for(int i = 1;i <= n;++ i){
cin >> a[i];
mp[a[i]]++;
}
bool f = 0;
for(int i = 1;i <= 100;++ i){
if(mp[i] >= k){
f = 1;
break;
}
}
if(f) cout << k-1 << endl;
else cout << n << endl;
}
signed main(){
cin >> t;
while(t--) qwq();
return 0;
}