Untitled

 avatar
unknown
plain_text
2 years ago
912 B
2
Indexable
#include<iostream>
using namespace std;
int n, k,m;
int a[20];
int ans;
bool check()
{
	for(int i=0; i<=n-k;i++){
		int max=0;
		for(int j=0; j<k;j++){
			if(max<a[i+j])max=a[i+j];
		}
		int d=0;
		for(int j=0; j<k;j++){
			if(a[i+j]==max)d++;
		}
		if(d>=m) return false;
	}
	return true;
}

void go(int k, int cnt)
{
	if(cnt>ans) return;
	if(k==n){
		if(check()){
			if(cnt<ans) ans=cnt;
		}
		return;
	}
	for(int j=0; j<2;j++){
		if(j==0) go(k+1,cnt);
		else{
			a[k]=a[k]+1;
			go(k+1,cnt+1);
			a[k]=a[k]-1;
		}
	}
}
int main()
{
	freopen("input.txt","r",stdin);
	int T; cin >>T;
	for(int tc=1; tc<=T;tc++){
		
		cin >> n>>k>>m;
		for(int i=0; i<n;i++){
			cin >> a[i];
		}
		ans=n;
		go(0,0);
		if(ans==n) cout<<-1<<endl;
		else cout<<ans<<endl;
	}
	return 0;
}


//input
5 3 2
1 3 1 2 1
5 3 3
7 7 7 7 7
5 3 3
7 7 7 8 8
4 3 1
1 3 1 2
011-1
Editor is loading...