摘要

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

题意

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

题解

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

代码

412A.cpp代码已折叠
展开折叠内容
显示/移除行号
  1. #include<cstdio>
  2. #include<iostream>
  3. #include<string>
  4. #include<algorithm>
  5. using namespace std;
  6. #define dsi(n) int n;scanf("%d",&n)
  7. #define si(n) scanf("%d",&n)
  8. #define f(i,n) for(int i=1;i<=n;++i)
  9. #define fi(n) f(i,n)
  10. #define f0(i,n) for(int i=0;i!=n;++i)
  11. #define fd(i,n) for(int i=n;i>=1;--i)
  12. #define ci const int&
  13. #define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)
  14.  
  15. #define c(x) const x&
  16. class st
  17. {
  18. int x,y;
  19. friend bool operator <(const st&a,const st&b){return a.x<b.x;}
  20. };
  21. string s;
  22. int main()
  23. {
  24.  
  25. int n,k;
  26. cin>>n>>k>>s;
  27. if(k>(n>>1))//fixed:边界数值问题//
  28. {
  29. fi(n-k)cout<<"RIGHT\n";
  30. for(int i=s.size()-1;i>=0;--i)
  31. {
  32. cout<<"PRINT "<<s[i]<<endl;
  33. if(i!=0)cout<<"LEFT\n";
  34. }
  35. }
  36. else
  37. {
  38. fi(k-1)cout<<"LEFT\n";
  39. for(int i=0;i<s.size();++i)
  40. {
  41. cout<<"PRINT "<<s[i]<<endl;
  42. if(i!=s.size()-1)cout<<"RIGHT\n";
  43. }
  44. }
  45. }

著作权声明[编辑]

关于[编辑]