摘要
题目链接 |
难度等级 |
完成状态 |
完成分数 |
最后编辑时间 |
失误原因(初次提交分数)
|
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";
- }
- }
- }
|