Description

话说练习后缀数组时,小C 刷遍 poj 后缀数组题。

各类字符串题闻之丧胆。就在准备对敌方武将发出连环杀时,对方一记无中生有,又一招顺

手牵羊。小C 程序中的原字符数组就被牵走了。幸运的是。小C 早已经求出了 SA[],为了

能东山再起,迅速 A 掉此题,他希望各位忠臣们能帮忙求出一组原字符数组的可行方案。



知原字符数组由小写拉丁字母组成。

且小C的SA[]也是有可能求错的。 原数组可能不存在。

Input

输入文件仅仅有一行且为用空格隔开的一个正整数 N。

接下来一行有 N 个数,为 1~N 的排列。

当中对于 100%的数据 N≤500000

Output

一行有 N 个小写拉丁字母。若不存在合法方案输出-1;

Sample Input

4

2 3 4 1

Sample Output

dabc

HINT

Source

鸣谢Claris提供SPJ

由于有SPJ所以不虚

尽量让构造出的那个字符串的字典序小的话,就能够随便构造了

然后假设最大的字符超过了小写字母肯定就是不合法了

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define MAXN 500010
#define GET (ch>='0'&&ch<='9')
using namespace std;
int n;
int sa[MAXN],rank[MAXN];
char last='a',ch[MAXN];
void in(int &x)
{
char ch=getchar();x=0;
while (!GET) ch=getchar();
while (GET) x=x*10+ch-'0',ch=getchar();
}
int main()
{
in(n);
for (int i=1;i<=n;i++) in(sa[i]),rank[sa[i]]=i;
ch[sa[1]]=last;
for (int i=2;i<=n;i++)
{
if (rank[sa[i-1]+1]>rank[sa[i]+1]) last++;
if (last>'z') {puts("-1");return 0;}
ch[sa[i]]=last;
}
for (int i=1;i<=n;i++) putchar(ch[i]);
}

最新文章

  1. [刘阳Java]_MyBatis_映射文件的常用标签总结_第5讲
  2. 20151120 - 蓝牙鼠标与 WiFi 冲突的解决办法
  3. php 上传文件实例 上传并下载word文件
  4. KVO机制浅析和实例演示
  5. CCF考前注意几点
  6. elcipse 中利用maven创建web工程
  7. bash: ifconfig: command not found
  8. lightoj 1011 最大权重匹配或最大费用流
  9. Gulp 简单的开发环境搭建
  10. UVA 1001 Say Cheese
  11. 几种 vue的数据交互形式
  12. 求m区间内的最小值
  13. JavaBean转Map方法
  14. 微信小程序之动态获取元素宽高
  15. yii2下载
  16. 使用css控制文字显示几行并且剩余部分隐藏(移动端和PC端同样适用)
  17. Cesium Up and Running Error: Cannot find module &#39;express&#39;
  18. centos7 修改同步时间
  19. Ajax核心技术之XMLHttpRequest
  20. 进阶系列(12)—— C#异步编程

热门文章

  1. MySQL性能优化之max_connections配置
  2. 多线程下单例模式的实现_ThreadLocal_ReentrantLock
  3. 二维码之zxing仿新浪微博二维码
  4. java.lang.IllegalArgumentException: Result Maps collection already contains value for com.zhmy.businessapi.mapper.CompanyMapper.BaseResultMap
  5. PHP Web开发入门流程
  6. 开源敏捷测试管理&amp; 开源BUG跟踪管理软件itest(爱测试) V3.3.0隆重发布
  7. Centos6.8 安装mongo3.6以及权限配置和开启外网链接
  8. Spring接收web请求参数的几种方式
  9. [Python3网络爬虫开发实战] 1.4.2-MongoDB安装
  10. Anaconda换源及常用命令