摘要

题目链接 难度等级 完成状态 完成分数 最后编辑时间 失误原因(初次提交分数)
Poster ★☆☆☆☆ 答案正确 100 2015-02-24 12:55:38 边界判断错误(2)

题意

在位置X,可以向左、向右移动或者填字母,问填完所有字母的步骤。

题解

首先移到最近的旁边(因为最边上的肯定要过去)然后一个个填就好惹。模拟题。

代码

412A.cpp代码已折叠
展开折叠内容
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define dsi(n) int n;scanf("%d",&n)
#define si(n) scanf("%d",&n)
#define f(i,n) for(int i=1;i<=n;++i)
#define fi(n) f(i,n)
#define f0(i,n) for(int i=0;i!=n;++i)
#define fd(i,n) for(int i=n;i>=1;--i)
#define ci const int&
#define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)

#define c(x) const x&
class st
{
    int x,y;
    friend bool operator <(const st&a,const st&b){return a.x<b.x;}
};
string s;
int main()
{

    int n,k;
    cin>>n>>k>>s;
    if(k>(n>>1))//fixed:边界数值问题//
    {
        fi(n-k)cout<<"RIGHT\n";
        for(int i=s.size()-1;i>=0;--i)
        {
            cout<<"PRINT "<<s[i]<<endl;
            if(i!=0)cout<<"LEFT\n";
        }
    }
    else
    {
        fi(k-1)cout<<"LEFT\n";
        for(int i=0;i<s.size();++i)
        {
            cout<<"PRINT "<<s[i]<<endl;
            if(i!=s.size()-1)cout<<"RIGHT\n";
        }
    }
}

著作权声明[编辑]

关于[编辑]