TÓPICO

Wrong answer (5%)

Pether perguntou 2 years ago

Alguém sabe onde estou errando? WA(5%)

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, k;
    int c, s;

    while(cin >> n >> k and (n || k)) {
        stack<int> fila;
        string ans = "Sim";

        for(int i = 0; i < n; i++) {
            cin >> c >> s;
            if(fila.empty()) fila.push(s);
            else {
                if(c >= fila.top())
                    while(!fila.empty() && fila.top() <= c) fila.pop();
                fila.push(s);
                if(fila.size() > k) {
                    ans = "Nao";
                }
            }
        }

        while(!fila.empty() && ans == "Sim") {
            int aux = fila.top();
            fila.pop();

            if(!fila.empty()) {
                if(fila.top() < aux) {
                    ans = "Nao";
                    break;
                }
            }
        }
        cout << ans << "\n";
    }

    return 0;
}

Lembre de não publicar soluções. Sua publicação pode ser revisada por nossos moderadores.

  • feodorv respondido 2 years ago

    You do not keep the current time in the first cycle and do not update it in the second one:

    aux = fila.top();