定义光标所指的歌曲序号和光标在屏幕中的位置,对于光标处于第一页和光标处于最后一页分别进行处理,并且判断一般情况进行处理,最后根据光标在屏幕中的位置输出当前列表和选中歌曲,对于歌曲数小于4的情况当前列表就是所有歌曲。
#include <iostream>
using namespace std;
int main() {
int order = 0;
int n;
string s;
cin >> n;
cin >> s;
int select = 0;
for (char letter : s) {
if (letter == 'U') {
if (order > 0) {
order--;
} else {
if (select == 0) {
order = 3;
}
}
select = (select - 1 + n) % n;
} else {
if (order < 3) {
order++;
} else {
if (select == n - 1) {
order = 0;
}
}
select = (select + 1) % n;
}
}
if (n < 4) {
for (int i = 1; i <= n; i++) {
cout << i << ' ';
}
} else {
for (int i = select - order; i <= select - order + 3; i++) {
cout << i + 1 << ' ';
}
}
cout << endl;
cout << select + 1;
return 0;
}
// 64 位输出请用 printf("%lld")



京公网安备 11010502036488号