Я получаю lcounter как правильный, но pcounter как случайные значения как 32751. Я не думаю, что он неинициализирован. Кто-нибудь может объяснить проблему? - PullRequest
0 голосов
/ 24 апреля 2020

https://codeforces.com/problemset/problem/1341/B Codeforces говорит об этом в строке: if (peaks> pcounter) Есть некоторая унифицированная ошибка, но я думаю, что я ее инициализировал. Я не могу понять проблему, может ли кто-нибудь помочь мне с этим?

#include <bits/stdc++.h>

int main()
{   using namespace std;
    int t,n,k;
    cin>>t;
    int i;
    for(i=0;i<t;i++)
    {   int l,p,x,j;
        int lcounter=0;
        int pcounter=0;
        int peaks,pzero;
        cin>>n>>k;
        int height[n];
        for(j=0;j<n;j++)
        cin>> height[j];
        l=0;
        for(x=1;x<=k-2;x++)
        {
            if( ( height[x]>height[x-1] ) && ( height[x]>height[x+1] ))
               {
                   p++;
               }

            pzero=p;
            peaks=p;
        }
            pcounter=p;
        for(l=1;l<=n-k;l++)
        {   
            int x=0;
            int y=0;
            if(height[l]>height[l-1]&&height[l]>height[l+1])
            {
                x=1;
            }
            if(height[l+k-2]>height[l+k-1]&&height[l+k-2]>height[l+k-3])
            {
                y=1;
            }
            peaks+= -x+y ;

            if(peaks>pcounter)
            {
                pcounter=peaks;
                lcounter=l;
            }
        }
        cout<<pcounter+1<<" "<< lcounter+1<<endl;
    }
}

1 Ответ

0 голосов
/ 24 апреля 2020

пики не инициализируются, если k <= 2 </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...