蒟蒻求助%%%
  • 板块P1159 排行榜
  • 楼主piggy123
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/9/3 12:05
  • 上次更新2023/11/4 08:05:53
查看原帖
蒟蒻求助%%%
380042
piggy123楼主2021/9/3 12:05
#include <iostream>
#include <vector>
using namespace std;

string ab[100005][2];
string ans[100005]; 
int n,u=0,d;

//void dfs(int s){
//
//	if (s==n){
//		for (int i=0;i<n;i++){
//			cout << ans[i] << endl; 
//		} 
//		cout << endl;
//		exit(0);
////return;
//	}
//	if (ab[s][1]=="SAME"){
//		ans[s]=ab[s][0];
//		dfs(s+1);
//	}else if (ab[s][1]=="UP"){
//		for (int i=s+1;i<n;i++){
//			if (ans[i].empty()){
//				ans[i]=ab[s][0];
//				dfs(s+1);
//				ans[i]="";
//			}
//		}
//	}else{
//		for (int i=0;i<s;i++){
//			if (ans[i].empty()){
//				ans[i]=ab[s][0];
//				dfs(s+1);
//				ans[i]="";
//			}
//		}	
//	}
//}

int main(){
	
	cin >> n;
	d=n-1;
	for (int i=0;i<n;i++){
		cin >> ab[i][0] >> ab[i][1];
	}
	for (int i=0;i<n;i++){
		if (ab[i][1]=="SAME"){
			ans[i]=ab[i][0];
		}else if (ab[i][1]=="UP"){
			while (!ans[d--].empty());
			ans[d+1]=ab[i][0];
		}else{
			while (!ans[u++].empty());
			ans[u-1]=ab[i][0];
		}
	}
	for (int i=0;i<n;i++){
		cout <<ans[i] << endl;
	}
	return 0;
}

样例过了,自测过了,两种方法一个20一个10

2021/9/3 12:05
加载中...