제출 #1006566

#제출 시각아이디문제언어결과실행 시간메모리
1006566UmairAhmadMirzaKnjige (COCI20_knjige)C++17
0 / 50
48 ms2512 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
int const N=5e5+5;
int const mod=1e9+7;

int main(){
    int n;
    cin>>n;
    stack<int> lst,rst;
    for(int i=0;i<n;i++){
        int a;
        cin>>a;
        lst.push(a);
    }
    vector<string> move;
    for(int i=0;i<n;i++){
        int rh=-1;
        while(lst.size()>0){
            if(rh==-1){
                //take the book on top of left in your rh
                move.push_back("UZMI D L");
                rh=lst.top();
                lst.pop();
            }
            else if(rh<lst.top()){
                //put rh book on top of right.
                move.push_back("STAVI D D");
                rst.push(rh);
                //take the book from top of left in your rh
                move.push_back("UZMI D L");
                rh=lst.top();
                lst.pop();
            }
            else{
                rst.push(lst.top());
                //take the book from top of left in your lh
                move.push_back("UZMI L L");
                lst.pop();
                //put lh book on top of right.
                move.push_back("STAVI L D");
            }
        }
        //place book in your rh on top of left
        move.push_back("STAVI D L");
        lst.push(rh);
        while(!rst.empty()){
            lst.push(rst.top());
            //take book in your lh from top of right
            move.push_back("UZMI L D");
            rst.pop();
            //place book in your lh on top of left.
            move.push_back("STAVI L L");
        }
    }
    cout<<move.size()<<endl;
    for (string s:move)
        cout<<s<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...