📜  Codeforces Round #376 (Div. 2),问题:(A) 博物馆之夜 - C++ (1)

📅  最后修改于: 2023-12-03 14:40:08.092000             🧑  作者: Mango

Codeforces Round #376 (Div. 2) - Problem A - 博物馆之夜

本题是Codeforces一个编程竞赛的题目,名为博物馆之夜。题目描述如下:

题目描述

你正在一个巨大的博物馆的夜晚展出,每个展厅里均有一件不同的艺术品,从1到n编号。你表现出对博物馆的极大兴趣,但是你只能看到编号为i的艺术品当你站在位置i上(即展厅i)。但是,你只能移动到比你当前所在展厅编号小的展厅。

在博物馆的夜晚,有m个事件会发生。每个事件是以下两种类型之一:

  • "2 x":你向前移动到编号为x的展厅。
  • "1":查询你当前所在展厅的艺术品编号,并打印出来。

给定每个事件的描述,请输出每个查询事件的结果。

输入

输入的第一行包含两个整数 n 和 m (1 <= n, m <= 100) - 博物馆展厅的数量和事件的数量。

接下来 m 行描述每个事件。每行包含一个字符串 s 和一个整数 k。如果 s = "2",则表示一个类型为 "2 x" 的事件,其中 x 是一个整数 (1 <= x <= n)。如果 s = "1",则表示一个查询事件。

输出

对于每个查询事件,输出你当前所在展厅的艺术品编号。

示例

输入:

5 7
2 2
1
2 3
2 1
1
2 4
1

输出:

2
2
4
解析

我们需要模拟每个事件的发生,对于类型为 "2 x" 的事件,我们将当前位置移动到 x;对于类型为 "1" 的事件,我们输出当前位置的艺术品编号。

以下是一个使用 C++ 语言实现的示例代码片段:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;

    vector<int> exhibit(n);
    int currentRoom = 1;

    for (int i = 0; i < m; i++) {
        int eventType;
        cin >> eventType;

        if (eventType == 2) {
            int room;
            cin >> room;
            currentRoom = room;
        } else if (eventType == 1) {
            cout << exhibit[currentRoom - 1] << endl;
        }
    }

    return 0;
}

希望这个介绍对你有帮助!