Good Bye 2013---B. New Year Present
2014-10-30 00:48
691 查看
New Year Present
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
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.
Input
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.
Output
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.
Sample test(s)
input
output
input
output
解题思路:对于第个位置,先判断糖果数是否大于0,若大于,则先输出'P',再重复判断,若等于0,则输出'R',同时往后移。当一个位置上糖果数大于1时,输出第二个及以上糖果时,有两种方式回到原地,'PL'和‘LP’,这个要判断一下在边界的情况,要保证机器人不能出界。
AC代码:
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
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.
Input
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.
Output
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.
Sample test(s)
input
2 1 2
output
PRPLRP
input
4 0 2 0 2
output
RPRRPLLPLRRRP
解题思路:对于第个位置,先判断糖果数是否大于0,若大于,则先输出'P',再重复判断,若等于0,则输出'R',同时往后移。当一个位置上糖果数大于1时,输出第二个及以上糖果时,有两种方式回到原地,'PL'和‘LP’,这个要判断一下在边界的情况,要保证机器人不能出界。
AC代码:
#include <iostream> #include <cstdio> using namespace std; int a[305]; int main(){ // freopen("in.txt","r",stdin); int n; while(cin>>n){ for(int i=0; i<n; i++) cin>>a[i]; for(int j=0; j<n; j++){ int k = 0; while(a[j] > 0){ if(k){ if(j == n-1) cout<<"LR"; else cout<<"RL"; } cout<<"P"; a[j] --; k ++; } if(j < n-1) cout<<"R"; } cout<<endl; } return 0; }
相关文章推荐
- Good Bye 2013---B. New Year Present
- Codeforces Good Bye 2015 E. New Year and Three Musketeers
- Good Bye 2015 D. New Year and Ancient Prophecy(dp+LCP)
- codeforces Good Bye 2015 C - New Year and Domino
- 【Good Bye 2014C】【脑洞】New Year Book Reading 书放一摞依次看 最佳顺序使费用最小
- Good Bye 2016 C. New Year and Rating(二分)
- Codeforces Good Bye 2017: F. New Year and Rainbow Roads(模拟)
- Good Bye 2014 B. New Year Permutation(floyd )
- Good Bye 2014 B. New Year Permutation 【传递闭包 贪心】
- Good Bye 2015 D. New Year and Ancient Prophecy
- codeforces Good Bye 2015 D. New Year and Ancient Prophecy
- 【Good Bye 2014D】【期望的线性可加 基本元素累计】New Year Santa Network 树上取3点,路径权值之和的期望
- Good Bye 2016 C. New Year and Rating(二分)
- Good Bye 2016 C. New Year and Rating(模拟)
- CF Good Bye 2015 A- New Year and Days(CF611A)
- Good Bye 2015-D. New Year and Ancient Prophecy
- codeforces Good Bye 2015 E. New Year and Three Musketeers
- Good Bye 2017 D.New Year and Arbitrary Arrangement - 数学
- Good Bye 2017-A. New Year and Counting Cards
- CodeFroces--Good Bye 2016-A-New Year and Hurry(水题-模拟)