华为机试:MP3光标位置

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> music;
    for (int i = 1; i <= n; i++) {
        music.push_back(i);
    }
    int len = 4 <= music.size() ? 3 : music.size() - 1;
    int i = 0, j = len, c = 0;
    string oper;
    cin >> oper;
    for (char op : oper) {
        if (op == 'U') {
            if (c > i && c <= j) {
                c = c - 1;
            }
            else {
                if (i == 0) {
                    c = n - 1;
                    i = c - len;
                    j = c;
                }
                else {
                    i = i - 1;
                    j = j - 1;
                    c = i;
                }
            }
        }
        else {
            if (c >= i && c < j) {
                c = c + 1;
            }
            else {
                if (j == n - 1) {
                    c = 0;
                    i = c;
                    j = c + len;
                }
                else {
                    i = i + 1;
                    j = j + 1;
                    c = j;
                }
            }
        }
    }
    for (int k = i; k <= j; k++) {
        cout << music[k] << " ";
    }
    cout << endl;
    cout << music[c] << endl;
    return 0;
}

全部评论

相关推荐

沟头学院:无关比赛不要写,这样会显着你主次不分,比赛不要撒谎,有哪些就写那些,创新创业建议删除。技能特长可以适当夸大。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务