379B - New Year Present - CodeForces Solution


constructive algorithms implementation *1200

Please click on ads to support us..

Python Code:

n=(int(input()))
arr=list(map(int,input().rstrip().split()))
s=""
for e in range(n):
    if arr[e]!=0 and e<n-1:
        o=arr[e]
        for ee in range(o):
            if arr[e]!=1:
                s=s+"PRL"
                arr[e]-=1
            else:
                s=s+"PR"
                arr[e]-=1
    elif arr[e]==0 and e<n-1:
         s=s+"R"
    elif(arr[e]!=0 and e==n-1):
	     o=arr[e]
	     for ee in range(o):
               if arr[e]!=1:
                   s=s+"PLR"
                   arr[e]-=1
               else:
                   s=s+"P"
print(s)          

C++ Code:

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int t[n];
    long long s=0;
    for(int i=0;i<n;i++){
        int a;
        cin>>a;
        t[i]=a;
        s+=a;
    }
    int k=0;
    int j=0;
    bool test=true;
    while(s!=0){
        if(k==0){
            if((t[j]!=0)&&(test)){
                cout<<"P";
                s--;
                test=false;
                t[j]=t[j]-1;
            }
            else if(j!=n-1){
                cout<<"R";
                test=true;
                j++;

            }
            else{
                k=1;
                test=false;
            }

        }
        else{
                if((t[j]!=0)&&(test)){
                cout<<"P";
                s--;
                t[j]=t[j]-1;
                test=false;

            }
            else if(j!=0){
                cout<<"L";
                test=true;
                j--;

            }
            else{
                k=0;
                test=false;
            }

        }

    }
}


Comments

Submit
0 Comments
More Questions

921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST
445. Add Two Numbers II
442. Find All Duplicates in an Array
437. Path Sum III
436. Find Right Interval
435. Non-overlapping Intervals
406. Queue Reconstruction by Height
380. Insert Delete GetRandom O(1)
332. Reconstruct Itinerary
368. Largest Divisible Subset