<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def largest_connected_submatrix(C, directed=True, lcc=None):
 r"""Compute the count matrix of the largest connected set. The input count matrix is used as a weight matrix for the construction of a directed graph. The largest connected set of the constructed graph is computed. Vertices belonging to the largest connected component are used to generate a completely connected subgraph. The weight matrix of the subgraph is the desired completely connected count matrix. Parameters C : scipy.sparse matrix or numpy ndarray Count matrix specifying edge weights directed : bool, optional Whether to compute connected components for a directed or undirected graph. Default is True lcc : (M,) ndarray, optional The largest connected set Returns ------- C_cc : scipy.sparse matrix Count matrix of largest completely connected set of vertices (states) """

    if lcc is None:
        lcc = largest_connected_set(C, directed=directed)

    """Row slicing"""
    if scipy.sparse.issparse(C):
        C_cc = C.tocsr()
    else:
        C_cc = C
    C_cc = C_cc[lcc, :]

    """Column slicing"""
    if scipy.sparse.issparse(C):
        C_cc = C_cc.tocsc()
    C_cc = C_cc[:, lcc]

    if scipy.sparse.issparse(C):
        return C_cc.tocoo()
    else:
        return C_cc