$ncariche = count($cariche);
 echo $ncariche . "\n";
 foreach ($cariche as $i => $carica_i) {
     $politico_i = $carica_i->getOppPolitico();
     $gruppo_id = $politico_i->getGruppoCorrente()->getId();
     // stampa riga con id politico, nome e gruppo
     $pol_descr = sprintf("p%d = \"id:%d,nome:%s,cognome:%s,gruppo_id:%d;\"\n", $i + 1, $politico_i->getId(), $politico_i->getNome(), $politico_i->getCognome(), $gruppo_id);
     print $pol_descr;
     fwrite($fp, $pol_descr);
     // stampa riga con valori matrice distanze
     // dist = MAX - sim
     fprintf($fp, "r%d = [ ", $i + 1);
     foreach ($cariche as $j => $carica_j) {
         $d = OppSimilaritaPeer::retrieveByPK($carica_i->getId(), $carica_j->getId());
         if ($tipo == 'votes') {
             $dist = OppSimilaritaPeer::getMaxSimilarityForVotes() - $d->getVotingSimilarity();
         } else {
             $dist = OppSimilaritaPeer::getMaxSimilarityForSignatures() - $d->getSigningSimilarity();
         }
         fprintf($fp, "%5.3f", $dist);
         if ($j < $ncariche - 1) {
             fprintf($fp, ", ");
         }
     }
     fprintf($fp, " ];\n");
 }
 // ultime due righe per aggregare i dati precedenti
 fprintf($fp, "ps = [");
 for ($i = 0; $i < $ncariche; $i++) {
     fprintf($fp, "p%d; ", $i + 1);
 }