题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
#include <iostream>
#include <vector>
using namespace std;
int main() {
int num;
int curPos = 1;
string command;
cin >> num >> command;
int page[4];
if(num < 4){
for(int i = 0; i < num; i++) page[i] = i+1;
}
else{
for(int i = 0; i < 4; i++) page[i] = i++;
}
for(int i = 0; i < command.length(); i++){
if(command[i] == 'U'){
if(num <= 4){
if(curPos == 1){
curPos = num;
}
else curPos--;
}
else{
if(curPos == 1){
curPos = num;
for(int i = 0; i < 4; i++) page[i] = num - 3 + i;
}
else if(curPos == page[0]){
curPos--;
for(int i = 0; i < 4; i++) page[i]--;
}
else curPos--;
}
}
if(command[i] == 'D'){
if(num <= 4){
if(curPos == num) curPos = 1;
else curPos++;
}
else{
if(curPos == num){
curPos = 1;
for(int i = 0; i < 4; i++) page[i] = i + 1;
}
else if(curPos == page[3]){
curPos++;
for(int i = 0; i < 4; i++) page[i]++;
}
else curPos++;
}
}
}
int listLen = num >= 4 ? 4 : num;
for(int i = 0; i < listLen; i++) cout << page[i] << " ";
cout << endl;
cout << curPos << endl;
return 0;
}