█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 4877

Problema 0xcf - Mirando al horizonte

  • Autor: jsy08
  • Fecha: 2021-09-10 05:44:07 UTC (Hace más de 2 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.003 s 0 KBi
#2
Correcto
0.006 s 2 KBi
#3
Correcto
0.003 s 0 KBi
#4
Correcto
0.005 s 2 KBi
#5
Correcto
0.011 s 1 KBi
#6
Correcto
0.219 s 6 KBi
#7
Correcto
0.164 s 6 KBi
#8
Correcto
0.274 s 7 KBi
#9
Correcto
0.188 s 6 KBi
#10
Correcto
0.22 s 7 KBi
Puntos totales: 100 / 100

Código

#include <iostream>
#include <stack>
using namespace std;

int main() {
	int t; cin>>t;
	int it = 1;
	while(t--){
		int n; cin>>n;
		int arr[n];
		for(int i=0; i<n;i++) cin>>arr[i];
		stack<int> s;
		int res[n];
		for(int i = n-1; i >=0; i--){
			if(s.empty()) res[i] = -1;
			else{
				while(!s.empty() && arr[i] >= s.top()){
					s.pop();
				}
				if(s.empty()) res[i] = -1;
				else res[i] = s.top();
			}
			s.push(arr[i]);
		}
		cout<<"Case #"<<it<<": ";
		for(auto x: res) cout<<x<<" ";
		cout<<endl;
		it++;
	}
	return 0;
}