#include<bits/stdc++.h> using namespace std; const int N=100000+10; char a[N]; int cnt; int n; int p[N],nxt[N]; bool v[N]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&p[i]); nxt[i]=i-p[i]; } a[1]='a'; for(int i=2;i<=n;i++){ if(!nxt[i]){ memset(v,0,sizeof v); int j; while(1){ j=nxt[i-1]; v[a[j+1]-'a']=1; if(j==0) break; } for(int k=0;k<26;k++){ if(!v[k]) { a[i]=k+'a';break; } } } else { int j; j=nxt[i-1]; while(1){ if(j+1==nxt[i]) break; j=nxt[j]; } a[i]=a[j+1]; } } printf("%s",a); return 0; }
字符串大师
猜你喜欢
转载自www.cnblogs.com/Miracevin/p/9175296.html
今日推荐
周排行