B. New Year Present
来源:互联网 发布:mac gcc 不安装xcode 编辑:程序博客网 时间:2024/06/05 16:09
The New Year is coming! That's why many people today are busy preparing New Year presents. Vasily the Programmer is no exception.
Vasily knows that the best present is (no, it's not a contest) money. He's put n empty wallets from left to right in a row and decided how much money to put in what wallet. Vasily decided to put ai coins to the i-th wallet from the left.
Vasily is a very busy man, so the money are sorted into the bags by his robot. Initially, the robot stands by the leftmost wallet in the row. The robot can follow instructions of three types: go to the wallet that is to the left of the current one (if such wallet exists), go to the wallet that is to the right of the current one (if such wallet exists), put a coin to the current wallet. Due to some technical malfunctions the robot cannot follow two "put a coin" instructions in a row.
Vasily doesn't want to wait for long, so he wants to write a program for the robot that contains at most 106 operations (not necessarily minimum in length) the robot can use to put coins into the wallets. Help him.
The first line contains integer n (2 ≤ n ≤ 300) — the number of wallets. The next line contains n integers a1, a2, ..., an (0 ≤ ai ≤ 300).
It is guaranteed that at least one ai is positive.
Print the sequence that consists of k (1 ≤ k ≤ 106) characters, each of them equals: "L", "R" or "P". Each character of the sequence is an instruction to the robot. Character "L" orders to move to the left, character "R" orders to move to the right, character "P" orders the robot to put a coin in the wallet. The robot is not allowed to go beyond the wallet line. In other words, you cannot give instructions "L" if the robot is at wallet 1, or "R" at wallet n.
As a result of the performed operations, the i-th wallet from the left must contain exactly ai coins. If there are multiple answers, you can print any of them.
21 2
PRPLRP
40 2 0 2
RPRRPLLPLRRRP
解题说明:此题是一个钱包放硬币问题,只需要保证每一个钱包i放入ai枚硬币。由于不能连续放入两枚硬币,可以在放入一个硬币后先向右移动再向左移动,直到放入的硬币满足条件,但是要注意最后一个位置,只能向左移动再向右移动。
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<cstdlib>#include<cstring>using namespace std;int main(){int a,b,ans,ba,val,i,n;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&val);if(i<n){if(val>=1){while(val>0){printf("PRL");val--;}}printf("R");}else{if(val>=1){while(val>0){printf("PLR");val--;}}}}return 0;}
- B. New Year Present
- B. New Year Present----构造
- codeforces--goodbye2013 --B. New Year Present
- codeforces-379B. New Year Present
- Codeforces 379B New Year Present(模拟)
- Good Bye 2013---B. New Year Present
- New Year Present
- codeforces New Year Present 题解
- B - New Year Permutation
- B. New Year Permutation
- Codeforces 500B - New Year Permutation (思维)
- Good Bye 2014--B. New Year Permutation
- codeforces #500B# New Year Permutation
- Good Bye 2014 B. New Year Permutation
- B. New Year Permutation (CF)
- CF 500B New Year Permutation
- coderforce 500B New Year Permutation
- B. New Year and Old Property
- gcc/make
- 两种快速排序
- 杨氏矩阵
- orcal创建外键的几种方式
- vc 无法检测到COM的错误使用造成的内存泄露
- B. New Year Present
- Linux GPIO驱动
- VC控件ListCtrl的使用方法总汇
- shell内部命令使用详解
- java与json互相转换(解决日期问题)
- struts2+spring+hibernate整合(示例)
- 软件工程——面向过程的软件设计方法
- gcc and g++
- Android图片异步加载