mirror of
https://gitcode.com/Zengtudor/alg2025.git
synced 2025-12-16 20:23:00 +00:00
feat: 添加P9015题解实现
实现一个模拟算法来解决P9015问题,根据输入数组的值控制移动方向并输出路径。当遇到边界或特定条件时改变方向,直到所有元素耗尽。
This commit is contained in:
parent
65fe11a140
commit
32de376783
57
src/10/18/P9015.cpp
Normal file
57
src/10/18/P9015.cpp
Normal 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");
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user