题解 | #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; }