第一题坑了,调了将近一个小时,结果是题目没有spj,没来的及测第二题 结束之后写的第二题, O(n),我这边本地测试了几个数据好像没错,欢迎指正 [n,m,k]=map(int, raw_input().split()) def combine(n,m,k): if n==0:
return 'z'*m
if m==0:
return 'a'*n
if k > (max(m, n) + 1) * min(m, n):
return ''
if m==1:
return 'a'*(n-k+1)+'z'+'a'*(k-1)
if n==1:
return 'z'*(k-1)+'a'+'z'*(m-k+1)
asum= (max(m-1, n) + 1) * min(m-1, n)
if k<=asum:# the first is a
return 'a'+combine(n-1,m,k)
else:
return 'z'+combine(n,m-1,k-asum)
if k > (max(m,n)+1)*min(m,n): print -1else: print combine(n,m,k)