fork(1) download
  1. #include<stdio.h>
  2. int arr[100000];
  3. int k=0;
  4. int main(){
  5. int a=0;
  6. scanf("%d",&a);
  7. for(int l=1;l<=a;l++){
  8. int s=100000000;
  9. int c=0;int d=0;
  10. scanf("%d %d %d",&k,&c,&d);
  11. for(int i=0;i<k;i++){
  12. scanf("%d",&arr[i]);
  13. }
  14. for(int i=0,j=0;j<k;){
  15. int n=0;int t=0;
  16. if(n<=c && t<=d){
  17. j++;
  18. if(arr[j]>arr[j-1])n++;
  19. if(arr[j]<arr[j-1])t++;
  20. if(n==c && t==d && j-i<s)s=j-i;
  21. }else{
  22. i++;
  23. if(arr[i]>arr[i-1])n--;
  24. if(arr[i]<arr[i-1])t--;
  25. if(n==c && t==d && j-i<s)s=j-i;
  26. }
  27. }
  28. if(c==0 && d==0)printf("Case #%d: 1\n",l);
  29. else if(s==100000000)printf("Case #%d: -1\n",l);
  30. else printf("Case #%d: %d\n",l,s+1);
  31. }
  32. }
Success #stdin #stdout 0s 4408KB
stdin
1
6 2 2
1777 1001 2914 1998 1525 2213
stdout
Case #1: -1