def top_cited(papers, topn=20, verbose=False):
    """
    Generates a list of the topn (or topn%) most cited papers.

    Parameters
    ----------
    papers : list
        A list of :class:`.Paper` instances.
    topn : int or float {0.-1.}
        Number (int) or percentage (float) of top-cited papers to return.
    verbose : bool
        If True, prints status messages.

    Returns
    -------
    top : list
        A list of 'ayjid' keys for the topn most cited papers.
    counts : dict
        Citation counts for all papers cited by papers.
    """

    if verbose:
        print "Finding top "+unicode(topn)+" most cited papers..."

    counts = citation_count(papers, verbose=verbose)

    if type(topn) is int:
        n = topn
    elif type(topn) is float:
        n = int(np.around(topn*len(counts), decimals=-1))
    top = dict(sorted(counts.items(),
                       key=operator.itemgetter(1),
                       reverse=True)[:n]).keys()

    return top, counts