feat: 添加P9015题解实现

实现一个模拟算法来解决P9015问题,根据输入数组的值控制移动方向并输出路径。当遇到边界或特定条件时改变方向,直到所有元素耗尽。
This commit is contained in:
Zengtudor 2025-10-18 18:53:57 +08:00
parent 65fe11a140
commit 32de376783

57
src/10/18/P9015.cpp Normal file
View File

@ -0,0 +1,57 @@
#include <cstdint>
#include <cstdio>
#include <iostream>
#include <istream>
using ll = int64_t;
const ll maxn = 1e5+5;
ll n;
ll a[maxn];
int main(){
std::iostream::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cin>>n;
for(ll i=1;i<=n;i++){
std::cin>>a[i];
}
ll now=0;
ll dir=1;
while (1) {
if(now==0 && dir==-1){//往左走走到头
if(a[1]==0)break;
dir=1;
continue;
}
if(now==n && dir==1){//往右走走走到头
dir=-1;
continue;
}
if(dir==1){
if(a[now+1]==0){
dir=-1;
continue;
}
putchar('R');
now++;
a[now]--;
}else{
if(a[now]==1){
if(a[now+1]==0){
putchar('L');
a[now]--;
now--;
}else{
dir=1;
}
}else{
putchar('L');
a[now]--;
now--;
}
}
}
putchar(*"\n");
}