<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_cn_dict(self, structure, n, use_weights=False):
 """ Get coordination number, CN, of each element bonded to site with index n in structure Args: structure (Structure):
 input structure n (integer):
 index of site for which to determine CN. use_weights (boolean):
 flag indicating whether (True) to use weights for computing the coordination number or not (False, default: each coordinated site has equal weight). Returns: cn (dict):
 dictionary of CN of each element bonded to site """


        siw = self.get_nn_info(structure, n)

        cn_dict = {}
        for i in siw:
            site_element = i['site'].species_string
            if site_element not in cn_dict:
                if use_weights:
                    cn_dict[site_element] = i['weight']
                else:
                    cn_dict[site_element] = 1
            else:
                if use_weights:
                    cn_dict[site_element] += i['weight']
                else:
                    cn_dict[site_element] += 1
        return cn_dict