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

Envío 4874

Problema 0xcf - Mirando al horizonte

  • Autor: NellerP21
  • Fecha: 2021-09-09 21:54:24 UTC (Hace más de 3 años)
Caso # Resultado Tiempo Memoria
#1
Incorrecto
0.004 s 2 KBi
#2
Correcto
0.004 s 1 KBi
#3
Correcto
0.003 s 0 KBi
#4
Correcto
0.005 s 2 KBi
#5
Correcto
0.005 s 13 KBi
#6
Correcto
0.184 s 6 KBi
#7
Correcto
0.169 s 10 KBi
#8
Correcto
0.198 s 6 KBi
#9
Correcto
0.326 s 6 KBi
#10
Correcto
0.207 s 8 KBi
Puntos totales: 90 / 100

Código

#include<bits/stdc++.h>

using namespace std;

#define el "\n"

int main(){

	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	int T; cin>>T;

	for(int i = 0; i < T; ++i){
		int n; cin>>n;
		vector<int>v;
		vector<int>ans;
		stack<int>s;
		for(int j = 1; j <= n; ++j){
			int m; cin>>m;
			v.push_back(m);
		}

		s.push(v[n]);
		ans.push_back(-1);

		for(int j = n - 1; j >= 0; --j){
			if(s.top() > v[j]){
				ans.push_back(s.top());
				s.push(v[j]);
			}else{
				while(s.size() > 0){
					if(s.top() <= v[j] && s.size() == 1){
						ans.push_back(-1);
						s.pop();
						s.push(v[j]);
						break;
					}else if( s.top() > v[j]){
						ans.push_back(s.top());
						s.push(v[j]);
						break;
					}else{
						s.pop();
					}
				}
			}
		}


		cout<<"Case #"<<i + 1<<":"<<" ";
		for(int j = n ; j >  0; --j){
			cout<<ans[j]<<" ";
		}
		cout<<el;
		ans.clear();
		v.clear();
	}

	return 0;
}