Ignatius and the Princess II
Problem Description
Now our hero finds the door to the BEelzebub feng5166. He opens the door and finds feng5166 is about to kill our pretty Princess. But now the BEelzebub has to beat our hero first. feng5166 says, "I have three question for you, if you can work them out, I will
release the Princess, or you will be my dinner, too." Ignatius says confidently, "OK, at last, I will save the Princess."
"Now I will show you the first problem." feng5166 says, "Given a sequence of number 1 to N, we define that 1,2,3...N-1,N is the smallest sequence among all the sequence which can be composed with number 1 to N(each number can be and should be use only once
in this problem). So it's easy to see the second smallest sequence is 1,2,3...N,N-1. Now I will give you two numbers, N and M. You should tell me the Mth smallest sequence which is composed with number 1 to N. It's easy, isn't is? Hahahahaha......"
Can you help Ignatius to solve this problem?
Input
The input contains several test cases. Each test case consists of two numbers, N and M(1<=N<=1000, 1<=M<=10000). You may assume that there is always a sequence satisfied the BEelzebub's demand. The input is terminated by the end of file.
Output
For each test case, you only have to output the sequence satisfied the BEelzebub's demand. When output a sequence, you should print a space between two numbers, but do not output any spaces after the last number.
Sample Input
Sample Output
1 2 3 5 6 4
1 2 3 4 5 6 7 9 8 11 10
题目倒是不太难!这是多亏了next_premutation函数的莫大神奇!
关于next_permutation函数,参阅http://blog.csdn.net/lishuhuakai/article/details/8006937!
废话不多说,参考代码!
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int SIZE=1002;
int main()
{
int n,m;
int i,count;
int seq[SIZE];
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=0;i<SIZE;i++)
seq[i]=i+1;
count=0;
do
{
count++;
if(count==m)
{
for(i=0;i<n;i++)
if(i==n-1)
cout<<seq[i];
else
cout<<seq[i]<<" ";
cout<<endl;
break;
}
}
while (next_permutation(seq,seq+n));
}
return 0;
}
分享到:
相关推荐
本人搜集的资源,经本人亲测,可用性强!!!适合大家参考...
这是一个简单的入门ACM问题...用C语言写的,供初学者参考!
课程资源 杭电OJ1000-1099答案 ,仅供参考...
杭电oj1000题解题报告
杭电OJ题目分类的叙述,可以方便去学习去做。
杭电OJ 2028代码 the rosolve of the hdu 2028
杭电ACM2000-2011题已提交的代码!保证正确!
http://acm.hdu.edu.cn/ 杭电 1871 1872 1873 1874 1875 1877 1878 1879 1880 1881 1894 1895 1939 2000 acm的AC解题报告
这是HDUOJ上面的140道题目的答案,其中大部分都是简单题,有些太简单的就没有收集进去,代码为C/C++,全都AC了的,其中有些有具体的说明是怎么做的,例如博弈论那些
杭电OJ(1000-1099) AC 代码
本资源主要提供了杭电oj题目分类和自测状况两大类 可实现随机选题等功能.
杭电OJ部分威士忌的代码 杭电OJ部分威士忌的代码杭电OJ部分威士忌的代码
编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及目标代码生成c++源码.zip编译原理OJ-语义分析及...
杭电acm1201-1250 详细答案 大家好好看看格式吧
杭电oj 1047习题
杭电oj上的一些疑问,适用于初学者,可以解答一些疑问 都是一些水题
杭电oj分类
杭州电子科技大学 oj离线版