ickchen2

PKU3705

/*求最小的块移动求逆序*/
#include
<stdio.h> #include<iostream> #include<string> #include<vector> #include<map> #include<queue> #include<algorithm> #include<math.h> #define M 1000 using namespace std; void ans(int n) { int pos=1; while(pos!=n) { printf("%d %d %d\n",(n-pos)/2+pos,2,pos/2); pos+=2; //cout<<pos<<endl; } printf("%d %d %d\n",1,(n-1)/2,(n-1)/2); } int main() { int n; scanf("%d",&n); if(n==1)printf("0\n"); else if(n==2) { printf("1\n"); printf("%d %d %d\n",1,1,1); } else if(n&1) { printf("%d\n",(int)ceil((n+1)/2.0)); ans(n); } else { printf("%d\n",(int)ceil((n+1)/2.0)); ans(n-1); printf("%d %d %d\n",n,1,0); } }

posted on 2008-10-06 12:53 神之子 阅读(107) 评论(0)  编辑 收藏 引用 所属分类: PKU月赛


只有注册用户登录后才能发表评论。
相关文章:
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜