CF941

学贵坚持發表於2024-05-03

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;
	
}