TEMA

Wrong answer 30% em C++

André Henrique Lima preguntado 3 years ago

Se alguém puder me ajudar, agradeço. Se me mandarem algum caso de teste em que meu programa falha, vai ser muito bom também.

#include <iostream>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    bool flagPico;
    int contPicos = 0;

    int n;
    cin >> n;
    while (n != 0)
    {
        int primeiro, segundo;
        cin >> primeiro >> segundo;

        if (primeiro > segundo)
            flagPico = false;
        else
            flagPico = true;

        bool flagPicoInicial = flagPico; //Só um back up que será usado no fim
        ++contPicos; //Contabilizando o primeiro pico

        bool flagPicoAnt = flagPico;

        int ant = segundo;
        int atual;
        for (int i = 2; i < n; ++i)
        {
            cin >> atual;
            if(ant>atual)
                flagPico = false; //Se diminuiu
            else
                flagPico = true; //Se aumentou 

            if (flagPicoAnt != flagPico) //Se ouve oscilação
                ++contPicos;

            flagPicoAnt = flagPico;

            ant = atual;

        }

        //Essa última verificação é feita em relação a ligação que torna a sequência um loop
        if (ant>primeiro)
            flagPico = false;
        else
            flagPico = true;

        if (flagPicoInicial !=flagPico)
            ++contPicos;

        cout << contPicos << '\n';
        contPicos = 0;

        cin >> n;
    }

    return 0;
}

Recuerda no enviar soluciones. Tu mensaje puede ser revisado por nuestros moderadores.