第一题坑了,调了将近一个小时,结果是题目没有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 -1
else:
print combine(n,m,k)