Facebook
From Social Tamarin, 3 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 53
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<vector>
  4. using namespace std;
  5.  
  6. int t;
  7. int main() {
  8.         // freopen("in.txt", "r", stdin);
  9.         scanf("%d", &t);
  10.         for (int p = 0; p < t; ++p) {
  11.                 int n, k; scanf("%d %d", &n, &k);
  12.                 vector< int > vals;
  13.                 vector< int > peaks; peaks.push_back(0);
  14.                 for (int i = 0; i < n; ++i) {
  15.                         int x; scanf("%d", &x); vals.push_back(x);
  16.                         if (i >= 2) {
  17.                                 if (vals[i - 1] > vals[i - 2] && vals[i - 1] > vals[i]) {
  18.                                         peaks.push_back(1);
  19.                                 } else {
  20.                                         peaks.push_back(0);
  21.                                 }
  22.                         }
  23.                 }      
  24.                 int max_peak = 0;
  25.                 int l = 0, r = k - 1;
  26.                 for (int i = 1; i < k - 1; ++i) {
  27.                         if (peaks[i]) {
  28.                                 max_peak++;
  29.                         }
  30.                 }
  31.                 int curr_peak = max_peak, sl = 0;
  32.                 while (r < n - 1) {
  33.                         if (peaks[l + 1]) {
  34.                                 curr_peak--;
  35.                         }
  36.                         if (peaks[r]) {
  37.                                 curr_peak++;
  38.                         }
  39.                         l++; r++;
  40.                         if (curr_peak > max_peak) {
  41.                                 max_peak = curr_peak;
  42.                                 sl = l;
  43.                         }
  44.  
  45.                 }
  46.                 printf("%d %d\n", max_peak + 1, sl + 1);
  47.                 // for (int i = 0; i < n; ++i) {
  48.                 //      printf("%d\n", peaks[i]);
  49.                 // }
  50.                 // break;
  51.         }
  52.  
  53.         return 0;
  54. }