Untitled
unknown
plain_text
2 years ago
912 B
5
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-1Editor is loading...