Description

某班同学将要在圆桌上召开一次班会。圆桌上分布着3n3n个座位,顺时针编号依次为0,1,…,3n−10,1,…,3n−1,编号相邻的两个座位也相邻,特殊地,3n−13n−1和00也相邻。每个座位上坐着一位同学,每个同学也有一个整数编号XX。现在为了使会议更有趣。参加会议的人们决定进行一些座位调整。一共有两种调整规则如下:
11 aa:同学们顺时针移动aa个座位(aa为负数则逆时针移动)。举例:a=1a=1时,编号为ii的座位上的同学移动到编号为i+1i+1的座位上,特殊情况是编号为3n−13n−1的同学移动到编号为00的座位上。
22:从编号为0的座位开始,每相邻三个座位上的同学顺序颠倒一下。举例:n=2n=2时,座位上依次坐着编号为a0,a1,a2,a3,a4,a5a0,a1,a2,a3,a4,a5的同学,即编号为i的座位上坐着编号为ai的同学。经过该操作后,同学编号依次为a2,a1,a0,a5,a4,a3a2,a1,a0,a5,a4,a3。也就是说,将相邻三个座位上第一个和最后一个同学位置进行调换。
一共进行qq上述操作,最终请从座位00开始顺时针依次输出同学的编号。

Input

第一行输入nn和q(1≤n,q≤100000)q(1≤n,q≤100000),第二行输入3n3n个数字,表示从座位00到座位3n−13n−1上同学的编号序列,接下 来有qq行输入,每行输入11 a(−100000≤a≤100000)a(−100000≤a≤100000)或22,表示进行一次座位调整操作,操作含义详见题目描述。

Output

一行输出nn个数字,表示从座位00开始顺时针得到的同学编号。

Sample Input

2 3
1 -1 2 -2 3 -3
1 4
2
1 2

Sample Output

1 -3 3 -2 2 -1

通过分成三个小组,然后控制每个小组的上升或者下降匹配头的位置。

#include<stdio.h>int a[4][35000];
int rank[4]={
0,1,2,0
};
int up[4]={
0,0,0,0
};int main()
{
int i,j,k,n,q,qi,chi,headx,heady,len,nowrank,temp;
scanf("%d %d",&n,&q);
for(i=0;i<n;i++)
{
scanf("%d",&a[0][i]);
scanf("%d",&a[1][i]);
scanf("%d",&a[2][i]);
}
int head=0;
for(qi=0;qi<q;qi++)
{
scanf("%d",&chi);
if(chi==1)
{
scanf("%d",&len);
head=(head-(len%(3*n))+3*n)%(3*n);
}
else if(chi==2)
{
nowrank=head%3;
temp=rank[(nowrank+2)%3];
rank[(nowrank+2)%3]=rank[nowrank];
rank[nowrank]=temp;
if(nowrank+2>=3)
{
up[rank[nowrank]]=(up[rank[nowrank]]+1)%(3*n);
up[rank[nowrank-1]]=(up[rank[nowrank-1]]-1+3*n)%(3*n);
}
}
}
for(i=head;i<head+3*n-1;i++)
{
printf("%d ",a[rank[i%3]][(up[rank[(i%3)]]+i/3)%n]);
}
printf("%d\n",a[rank[(head+3*n-1)%3]][(up[rank[((head+3*n-1)%3)]]+(head+3*n-1)/3)%n]);
return 0;
}

dutoj1007圆桌会议相关推荐

  1. HDOJ 1214 圆桌会议

    Problem Description HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一 ...

  2. HDU1214 圆桌会议(找规律,数学)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1214 圆桌会议 Time Limit: 2000/1000 MS (Java/Others)    M ...

  3. 梁迪:源于热爱乐于分享,MVP代表圆桌会议

    梁迪<MVP代表圆桌会议> MVP代表圆桌会议,源于热爱乐于分享.来自全国的MVP(周岳.苏震巍.蒋金楠.胡浩.卿毅.项斌.刘浩杨.施兆熊.方洁影.方骥.刘鑫.童广林)作经验交流. 梁  ...

  4. 圆桌会议 HDU - 1214(规律+模拟队列)

    Time limit     1000 ms Memory limit     32768 kB OS    Windows Source     杭电ACM省赛集训队选拔赛之热身赛 HDU ACM集 ...

  5. 杭电1214 圆桌会议

    圆桌会议 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. HDU1214 圆桌会议【数学】

    圆桌会议 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...

  7. COSOSWAP官网2.0升级——线上圆桌会议重点回顾

    大家好,由COSOSWAP主办的"COSOSWAP官网2.0升级"线上圆桌会议_主题<Web3里GameFi的机遇与挑战>即将拉开帷幕.我们很荣幸有请到了TLT中文区大 ...

  8. 华山论剑 | 弓叶、陶朗等四家企业再生PET分选技术圆桌会议

    时间:2月22-23日 地点:中国·上海 第一届国际瓶级PET闭环产业链峰会,是瓶级PET全产业链的首次聚首,也是打造未来PET产业链合作机制的良好开端.峰会聚焦在全球瓶级PET产业动态.中国PET瓶 ...

  9. 热烈祝贺“UTONMOS第一届公会会长圆桌会议”圆满举行

    金秋时节,秋高气爽,丹桂飘香,通过激烈的角逐和竞争,20位优秀的UTONMOS公会会长脱颖而出.值此UT系列产品上线发布之际,所有UT公会会长云集上海滩和数集团总部,隆重举行了"UTONMO ...

最新文章

  1. 无法提升彼此,夫妻关系就要终结?
  2. 已经到了快元旦,可是总是不自在
  3. java基础---关于比较器Comparator和Comparable
  4. Windows 程序包管理器 1.0 正式发布
  5. 如何查看服务器文件进程,如何查看服务器上的所有进程
  6. MYSQL的replace into
  7. 华为机试——数字颠倒
  8. python集合补集、差集、并集_python set集合运算(交集,并集,差集,对称差集)...
  9. 内置方法 __new__ __del__
  10. mysql获取某个表的所有字段名
  11. 电力载波通信模块JST-HPLC-S-C在物联网通信领域的应用
  12. 《SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架》SAFe基础
  13. EXCEL:获取某列或得中最后一个非空单元格的行数和数值
  14. PhD Debate-11 预告 | 回顾与展望神经网络的后门攻击与防御
  15. 计算机视觉-语义分割论文总结
  16. H.265/HEVC视频编码标准总结
  17. 索骥馆-网络营销之《锦囊妙计 网站推广101招 第7版》扫描版[PDF]
  18. 20-软通动力信息技术股份有限公司-info
  19. Partitioning a graph into balanced connected classes: Formulations,separation and experiments
  20. bcftools的功能介绍

热门文章

  1. 南开大学c语言程序设计在线作业,[南开大学]18秋学期(1709、1803、1809)《C语言程序设计》在线作业...
  2. QT垂直布局被平分如何解决
  3. 读书笔记:《冠军记忆术》
  4. 数据中心基础设施是应该纵向扩展还是横向扩展?
  5. 可以在手机上写日记吗?
  6. 基于移动GIS的环保生态管理系统
  7. mysql存储结构与插入删除
  8. python字符照片_Python如何使用字符打印照片
  9. 普通相机也可以拍摄720°全景你知道吗
  10. 人体姿态估计(人体关键点检测)分类与经典方法分析(附GitHub地址)