悬已关注!!!过样例(10pts)
查看原帖
悬已关注!!!过样例(10pts)
763299
Storm_Lightning楼主2023/8/28 22:45
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct node 
{
	string s,t;
	int flag,id;
}song[110];
int n;
struct so
{
	string s1;
}g[110];
int vis[110];
int f;
signed main()
{
	cin>>n;
	int p=1,q=n;
	for(int i=1;i<=n;i++)
	{
		cin>>song[i].s>>song[i].t;
	}
	for(int i=1;i<=n;i++)
	{
		if(song[i].t=="SAME")
		{
			song[i].flag=2;
			if(vis[i]==0) 
			{
				g[i].s1=song[i].s;
				vis[i]=1;
			}
		}
		/*for(int j=1;j<=n;j++)
		{
			if(vis[j]==0) 
			{
				f=1;
				break;
			}
		}
		if(f==0) break;*/
	}
	for(int i=1;i<=n;i++)
	{
		if(song[i].t=="UP") 
		{
			song[i].flag=0;
			if(vis[q]==0) 
			{
				g[q].s1=song[i].s; 
				vis[q]=1; 
				q--; 
			}
			else
			{
				for(int j=n;j>=1;j--) 
				{
					if(vis[j]==0) 
					{
						q=j; 
						g[q].s1=song[i].s; 
						vis[q]=1; 
						q--; 
						break;
					}
				}
			}
		}
		if(song[i].t=="DOWN") 
		{
			song[i].flag=1;
			if(vis[p]==0) 
			{
				g[p].s1=song[i].s; 
				vis[p]=1; 
				p++; 
			}
			else
			{
				for(int j=1;j<=n;j++) 
				{
					if(vis[j]==0) 
					{
						p=j; 
						g[p].s1=song[i].s; 
						vis[p]=1; 
						p--; 
						break; 
					}
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<g[i].s1<<endl;
	}
	return 0;
}
2023/8/28 22:45
加载中...