Hotelier CodeForces - 1200A - 标记

Hotelier CodeForces - 1200A

往年天梯赛都是线下比赛,所以很多学校都会提前给学生们预定了酒店,
因为每个队伍只有10个人,于是教练们往往找刚好有10个房间的酒店来方便管理。
这个酒店的房间编号从左到右是0到9。 在最左侧和最右侧有着两个入口。
如果从左侧进入,那么经理会把他们安排在最靠近左的空房间,同理于从右侧进入。
但是在天梯赛当天,分配系统崩溃了,经理知道每个顾客的到达时间,从哪侧进入的,以及何时离开的。
最开始时,酒店的10个房间都是空的。
离比赛结束还有一定的时间,经理希望你能帮他计算出现在的分配情况。

Input

第一行包含一个整数 n (1≤n≤1e5)。
第二行包含长度为 n 的字符串。
L 和 R 分别表示学生从哪侧进入。
数字表示该数字编号房间的客人离开了。最初房间均为空。
保证有学生入住的时候存在空房间,保证给定编号的时候该编号房内有人。

Output

输出为一行,1表示有人,0表示空房间,不用空格分隔

Sample Input

8
LLRL1RL1
9
L0L0LLRR9

Sample Output

1010000011
1100000010

分析

开个标记数组,记录当前房间的情况即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e6+10, INF=0x3f3f3f3f;

int main(){
    // freopen("data.in", "r", stdin);
    int n; string s;
    while(cin>>n>>s){
        int v[13]={0};
        for(int i=0; i<n; i++){
            if(isdigit(s[i])) v[s[i]-'0']=0;
            if(s[i]=='L') {
                for(int j=0; j<=9; j++){
                    if(v[j]==0) { v[j]=1; break; }
                }
            }
            if(s[i]=='R'){
                for(int j=9; j>=0; j--){
                    if(v[j]==0) { v[j]=1; break; }
                }
            }
        }
        for(int i=0; i<=9; i++) cout<<v[i]; cout<<endl;
    }
    return 0;
}
posted @   HelloHeBin  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示