题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
#include <iostream> using namespace std; int main() { int n; string str; while(cin>>n>>str) { int screen[4] = {0}; int out=1; if(n<=4){ for(char it:str) { if(it =='U' && out==1){ out=n; }else if(it=='D' && out==n) { out=1; }else if(it=='D'){ out++; }else{ out--; } } for(int a=0;a<n;a++) cout<<a+1<<" "; cout<<endl; cout<<out; } else { for(int a=0;a<4;a++) screen[a]=a+1; for(char it:str){ if(it == 'U' && out==1){ out=n; screen[3] = n; screen[2] = n-1; screen[1] = n-2; screen[0] = n-3; continue; } if(it=='D' && out==n){ out=1; screen[3] = 4; screen[2] = 3; screen[1] = 2; screen[0] = 1; continue; } if(it == 'D'&&out!=screen[3]){ out++; continue; } if(it == 'U' && out!=screen[0]){ out--; continue; } if(it == 'D') { out++; screen[3]++; screen[2]++; screen[1]++; screen[0]++; continue; } out--; screen[3]--; screen[2]--; screen[1]--; screen[0]--; } for(int a=0;a<4;a++) cout<<screen[a]<<" "; cout<<endl; cout<<out; } } } // 64 位输出请用 printf("%lld")