hiho一下第143周
2017-03-27 19:34
204 查看
题目1 : hiho密码
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
小Ho根据最近在密码学课上学习到的知识,开发出了一款hiho密码,这款密码的秘钥是这样生成的:对于一种有N个字母的语言,选择一个长度为M的单词;将组成这个单词的所有字母按照顺序不重复的写出(即遇到相同字母时跳过);然后将字母表剩下的没有使用过的字母按照顺序在其后进行排列。
如对于有5个字母的hiho语,选择单词1, 2, 2, 4, 3(此处数字表示字母在字母表中的顺序),则秘钥为1,2,4,3,5。
但是有一天小Ho在计算出了秘钥之后,却发现他弄丢了一开始选择的单词,于是他找到了你,希望你能够帮他找到能够生成这个秘钥的最短的单词。
输入
每个输入文件包含单组测试数据。
每组测试数据的第一行为一个正整数N,意义如前文所述。
每组测试数据的第二行为N个正整数,用来描述一个秘钥,其中第i个正整数Ai表示秘钥的第i个字符在字母表中的顺序。
对于100%的数据,满足N<=1000,1<=Ai<=N。
对于100%的数据,满足对于任意1<=i, j<=N,若i≠j,则Ai≠Aj。
输出
对于每组测试数据,输出能够生成输入给出的秘钥的最短的单词(空串不认为是单词)。由于字母表没有给出,所以对于每个字母,输出其在字母表中的顺序即可(用空格隔开)。
样例输入
5
1 2 4 3 5
样例输出
1 2 4
//对于程序的正确性而言,边界控制是很重要的, //这一点应当继续摸索 #include<stdio.h> int main() { int n,i,a[1010]; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",a+i); } for(i=n-1;i>0;i--){ if(a[i-1]>a[i])break; } if(!i)printf("%d",a[i]); else{ for(n=0;n<i;n++)printf("%d ",a ); } return 0; }
相关文章推荐
- hiho一下 第143周 hiho密码
- hiho一下 第四十九周 题目1 : 欧拉路·一【无向图 欧拉路问题】
- hiho一下 第156周 岛屿
- hiho一下 第五十六周 高斯消元·一(高斯消元解整数方程组)
- hiho一下 第六十二周题目1 : Browser Caching
- hiho一下 第六十一周
- 扩展二进制数 hiho一下第168周
- 简单计算器 hiho一下第169周
- Trie树的两种实现 - hiho一下
- 【hiho一下 第八周】状态压缩·一
- hiho一下 第174周 - Dice Possibility【概率dp的简单运用 java & c++】
- hiho一下 第175周 Robots Crossing River
- hiho一下 第124周 查找附近POI- 四叉树
- (hiho一下第三周)#1015 KMP算法 【模版】
- hiho一下 第144周 机会渺茫 java
- hiho一下 第四十九周 欧拉路·一
- hiho一下第1周 最长回文子串
- hiho一下 第五十周 欧拉路·二 (Fleury算法求欧拉路径)
- hiho一下 第五十周 (求欧拉路径)
- hihocoder第57周hiho一下#1196 : 高斯消元·二