CodeForces 668B Little Artem and Dance
2016-05-02 13:15
323 查看
B. Little Artem and Dance
time limit per test
2 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Little Artem is fond of dancing. Most of all dances Artem likes rueda — Cuban dance that is danced by pairs of boys and girls forming a circle and dancing together.
More detailed, there are n pairs of boys and girls standing in a circle. Initially, boy number 1 dances
with a girl number 1, boy number 2dances
with a girl number 2 and so on. Girls are numbered in the clockwise order. During the dance different moves are announced and all pairs perform
this moves. While performing moves boys move along the circle, while girls always stay at their initial position. For the purpose of this problem we consider two different types of moves:
Value x and some direction are announced, and all boys move x positions
in the corresponding direction.
Boys dancing with even-indexed girls swap positions with boys who are dancing with odd-indexed girls. That is the one who was dancing with the girl 1 swaps
with the one who was dancing with the girl number 2, while the one who was dancing with girl number 3swaps
with the one who was dancing with the girl number 4 and so one. It's guaranteed that n is
even.
Your task is to determine the final position of each boy.
Input
The first line of the input contains two integers n and q (2 ≤ n ≤ 1 000 000, 1 ≤ q ≤ 2 000 000) —
the number of couples in the rueda and the number of commands to perform, respectively. It's guaranteed that n is even.
Next q lines contain the descriptions of the commands. Each command has type as the integer 1 or 2 first.
Command of the first type is given as x ( - n ≤ x ≤ n),
where 0 ≤ x ≤ n means all boys moves x girls
in clockwise direction, while - x means all boys move x positions
in counter-clockwise direction. There is no other input for commands of the second type.
Output
Output n integers, the i-th
of them should be equal to the index of boy the i-th girl is dancing with after performing all q moves.
Examples
input
output
input
output
input
output
1 4 3 2
先把1,2的位置确定了,
别的数字的位置变动和1,2肯定是一样的
time limit per test
2 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Little Artem is fond of dancing. Most of all dances Artem likes rueda — Cuban dance that is danced by pairs of boys and girls forming a circle and dancing together.
More detailed, there are n pairs of boys and girls standing in a circle. Initially, boy number 1 dances
with a girl number 1, boy number 2dances
with a girl number 2 and so on. Girls are numbered in the clockwise order. During the dance different moves are announced and all pairs perform
this moves. While performing moves boys move along the circle, while girls always stay at their initial position. For the purpose of this problem we consider two different types of moves:
Value x and some direction are announced, and all boys move x positions
in the corresponding direction.
Boys dancing with even-indexed girls swap positions with boys who are dancing with odd-indexed girls. That is the one who was dancing with the girl 1 swaps
with the one who was dancing with the girl number 2, while the one who was dancing with girl number 3swaps
with the one who was dancing with the girl number 4 and so one. It's guaranteed that n is
even.
Your task is to determine the final position of each boy.
Input
The first line of the input contains two integers n and q (2 ≤ n ≤ 1 000 000, 1 ≤ q ≤ 2 000 000) —
the number of couples in the rueda and the number of commands to perform, respectively. It's guaranteed that n is even.
Next q lines contain the descriptions of the commands. Each command has type as the integer 1 or 2 first.
Command of the first type is given as x ( - n ≤ x ≤ n),
where 0 ≤ x ≤ n means all boys moves x girls
in clockwise direction, while - x means all boys move x positions
in counter-clockwise direction. There is no other input for commands of the second type.
Output
Output n integers, the i-th
of them should be equal to the index of boy the i-th girl is dancing with after performing all q moves.
Examples
input
6 3 1 2 2 1 2
output
4 3 6 5 2 1
input
2 3 1 1 2 1 -2
output
1 2
input
4 2 2 1 3
output
1 4 3 2
先把1,2的位置确定了,
别的数字的位置变动和1,2肯定是一样的
#include <iostream> #include <string.h> #include <stdlib.h> #include <algorithm> #include <math.h> #include <stdio.h> using namespace std; #define MAX 1000000 int n,q; int c[MAX+5]; int x,y; int main() { scanf("%d%d",&n,&q); int a=1;int b=2; for(int i=1;i<=q;i++) { scanf("%d",&x); if(x==1) { scanf("%d",&y); a=(a+y+n)%n; if(a==0) a=n; b=(b+y+n)%n; if(b==0) b=n; } else { if(a&1) a+=1; else a-=1; if(b&1) b+=1; else b-=1; } } a-=1; b-=2; for(int i=1;i<=n;i++) { if(i&1) { int pos=(i+a)%n; if(pos==0) pos=n; c[pos]=i; } else { int pos=(i+b)%n; if(pos==0) pos=n; c[pos]=i; } } for(int i=1;i<=n;i++) { if(i==n) printf("%d\n",c[i]); else printf("%d ",c[i]); } return 0; }
相关文章推荐
- zookeeper原理(转)
- Property’s synthesized getter follows Cocoa naming
- CodeForces 668B Little Artem and Dance
- HDU 1158 Employment Planning
- 666
- C# Queue源码剖析
- Spark Streaming 新手指南(原始文章已经发布表在IBM Developworks)
- Tab的改造
- CodeForces 667A Pouring Rain
- redis-散列
- CodeForces 667A Pouring Rain
- android 保存网络图片到本地
- 浅谈Java反射
- 任意类型排序
- 设计模式(十八)桥接模式
- ansible之setup模块
- 读取zookeeper保存的topic元数据
- 基于文本内容的压缩
- CodeForces 666B World Tour(spfa+枚举)
- 【Spring之AOP】