Time limit  1000 ms

Memory limit  131072 kB

Little A has became fascinated with the game Dota recently, but he is not a good player. In all the modes, the rdsp Mode is popular on online, in this mode, little A always loses games if he gets strange heroes, because, the heroes are distributed randomly.

Little A wants to win the game, so he cracks the code of the rdsp mode with his talent on programming. The following description is about the rdsp mode:

There are N heroes in the game, and they all have a unique number between 1 and N. At the beginning of game, all heroes will be sorted by the number in ascending order. So, all heroes form a sequence One.

These heroes will be operated by the following stages M times:

1.Get out the heroes in odd position of sequence One to form a new sequence Two;

2.Let the remaining heroes in even position to form a new sequence Three;

3.Add the sequence Two to the back of sequence Three to form a new sequence One.

After M times' operation, the X heroes in the front of new sequence One will be chosen to be Little A's heroes. The problem for you is to tell little A the numbers of his heroes.

Input

There are several test cases.
Each case contains three integers N (1<=N<1,000,000), M (1<=M<100,000,000), X(1<=X<=20).
Proceed to the end of file.


Output

For each test case, output X integers indicate the number of heroes. There is a space between two numbers. The output of one test case occupied exactly one line.


Sample Input

5 1 2
5 2 2

Sample Output

2 4
4 3

Hint

In case two: N=5,M=2,X=2,the initial sequence One is 1,2,3,4,5.After the first operation, the sequence One
is 2,4,1,3,5. After the second operation, the sequence One is 4,3,2,1,5.So,output 4 3. 题意是每次操作都会把偶数位置的数提出放到最前面来,然后操作次数很大,求操作后的序列前几位 先看一下我傻逼一样的超时代码
 #include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std; struct node
{
int num;
int id;
}a[]; bool cmp(node b,node c)
{
return b.id<c.id;
} int main()
{
int n,m,k;
int i,j;
while(~scanf("%d%d%d",&n,&m,&k))
{
for(i=;i<=n;i++)
{
a[i].num=i;
a[i].id=i;
}
//找循环结
bool flag=true;
for(i=;i<=m;i++)
{
for(j=;j<=n;j+=)
a[j].id/=;
for(j=;j<=n;j+=)
a[j].id=(a[j].id+)/+n/;
sort(a+,a++n,cmp);
flag=true;
for(j=;j<=n;j++)
{
if(a[j].num!=j)
{
flag=false;
break;
}
}
if(flag)
break;
}
//取余
if(m!=i-)
{
m%=i;
//最后操作
for(i=;i<=n;i++)
{
a[i].num=i;
a[i].id=i;
}
for(i=;i<=m;i++)
{
for(j=;j<=n;j+=)
a[j].id/=;
for(j=;j<=n;j+=)
a[j].id=(a[j].id+)/+n/;
sort(a+,a++n,cmp);
}
printf("%d",a[].num);
for(i=;i<=k;i++)
printf(" %d",a[i].num);
printf("\n");
}
else
{
printf("%d",a[].num);
for(i=;i<=k;i++)
printf(" %d",a[i].num);
printf("\n");
}
}
return ;
}
再看一下我们女队楼主的超强代码
 #include <iostream>
#include<stdio.h>
using namespace std;
#define maxn 1000000
int n;
int ci;
int a[maxn+];
int k;
int T(int x)
{
int c=;
int cnt=;
do{
if(c*<=n)
{
c*=;
}
else
{
c=(c-n/)*-;
}
cnt++;
}while(c!=);
return cnt;
}
int main()
{
while(~scanf("%d%d%d",&n,&ci,&k))
{
ci%=T(n);
for(int i=;i<=n;i++)a[i]=i;
for(int i=;i<=k;i++)
{ for(int j=;j<=ci;j++)
{
if(a[i]*<=n)
{
a[i]=*a[i];
}
else{
a[i]=(a[i]-n/)*-;
}
}
if(i==)cout<<a[i];
else cout<<" "<<a[i];
}
cout<<endl; }
return ;
52 }

所以我是不是个傻逼。。。

是。。


NBUT 1225 NEW RDSP MODE I 2010辽宁省赛的更多相关文章

  1. NBUT 1218 You are my brother 2010辽宁省赛

    Time limit 1000 ms Memory limit 131072 kB Little A gets to know a new friend, Little B, recently. On ...

  2. NBUT 1225 NEW RDSP MODE I

    找出循环周期即可了 #include<bits/stdc++.h> using namespace std; int N,M,X; int time(int x,int y,int z) ...

  3. NBUT 1221 Intermediary 2010辽宁省赛

    Time limit 1000 ms Memory limit 131072 kB It is widely known that any two strangers can get to know ...

  4. NBUT 1224 Happiness Hotel 2010辽宁省赛

    Time limit 1000 ms Memory limit 131072 kB The life of Little A is good, and, he managed to get enoug ...

  5. NBUT 1222 English Game 2010辽宁省赛

    Time limit 1000 ms Memory limit 131072 kB This English game is a simple English words connection gam ...

  6. NBUT 1220 SPY 2010辽宁省赛

    Time limit  1000 ms Memory limit  131072 kB The National Intelligence Council of X Nation receives a ...

  7. NBUT 1219 Time 2010辽宁省赛

    Time limit   1000 ms Memory limit   131072 kB Digital clock use 4 digits to express time, each digit ...

  8. NBUT 1223 Friends number 2010辽宁省赛

    Time limit  1000 ms Memory limit   131072 kB Paula and Tai are couple. There are many stories betwee ...

  9. NBUT 1217 Dinner 2010辽宁省赛

    Time limit  1000 ms Memory limit  32768 kB Little A is one member of ACM team. He had just won the g ...

随机推荐

  1. UVa 818 切断圆环链(dfs+二进制枚举)

    https://vjudge.net/problem/UVA-818 题意:有n个圆环,其中有一些已经扣在了一起.现在需要打开尽量少的圆环,使得所有圆环可以组成一条链,例如,有5个圆环,1-2,2-3 ...

  2. mybatis 关于传long 类型问题

    @Datapublic class PrealertPackageStatusDTO { private Integer nowStatus; /** * packageStatusEnum */ p ...

  3. jenkins 工作空间的目录

    /usr/share/tomcat7/.jenkins/workspace/

  4. Qt5.3.2_CentOS6.4(x86)_代码文件编码

    1.1.1.Qt5.3.2_MinGW 在Windows中安装时,默认的文件编码是 UTF8. 1.2.在 CentOS6.4中安装 qt-opensource-linux-x86-5.3.2.run ...

  5. 错误代码0x00000001,好多软件连不了网,求助~(WIN7/win8/win9/win10)

    解决办法: 以管理员身份运行命令行,在弹出的窗口中运行如下命令: netsh winsock reset catalog netsh int ip reset reset.log hit 让被阻止了的 ...

  6. php入门之数据类型

    String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值),资源. 返回类型 getType ...

  7. Yet Another Ball Problem CodeForces - 1118E (简单构造)

    大意: 求构造n个pair, 每个pair满足 对于每k组, 让$b_i$为$[1,k]$, $g_i$循环右移就好了 int n, k, cnt; int main() { scanf(" ...

  8. XML Publisher Using API’s(转)

    原文地址:XML Publisher Using API’s Applications Layer APIsThe applications layer of XML Publisher allows ...

  9. linux磁盘清理记录

    执行df -h查看自己的数据磁盘到达97% 使用du -h --max-depth=1  查看数据占用较大的文件 清理记录 1.mysql慢查询日志 # mv slow.log slow.log.ba ...

  10. 《程序员面试金典》习题解答(C/C++)

    一.数据结构 1.数组与字符串 1.1  实现一个算法,确定一个字符串的所有字符是否全都不同.假使不允许使用额外的数据结构,又该如何处理? /* 假设字符集为ASCII字符串,那么字符串至多有256个 ...