Add files via upload
Bi-Rabittoh andronacomarco@gmail.com
Wed, 03 Apr 2019 01:05:53 +0200
6 files changed,
729 insertions(+),
0 deletions(-)
A
Centroide.java
@@ -0,0 +1,33 @@
+/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package siciliaguerrabot2020; + +/** + * + * @author Bi-Rabittoh + */ +public class Centroide { + public double x; + public double y; + + public Centroide(double x, double y) { + this.x = x; + this.y = y; + } + + @Override + public String toString() { + return "Centroide{" + "x=" + x + ", y=" + y + '}'; + } + + public Centroide puntoMedio(Centroide target){ + return new Centroide((this.x + target.x) / 2, (this.y + target.y) / 2); + } + + public double distanza(Centroide target){ + return Math.sqrt(Math.pow(this.x - target.x, 2) + Math.pow(this.y - target.y, 2)); + } +}
A
Comune.java
@@ -0,0 +1,131 @@
+/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package siciliaguerrabot2020; + +import java.util.ArrayList; +import java.util.LinkedList; + +/** + * + * @author Bi-Rabittoh + */ +public class Comune implements Comparable<Comune> { + private boolean vivo; + private String nome; + private Centroide pos; + private LinkedList<Territorio> territori; + private final int pop; + + public Comune(String nome, int pop, Centroide pos) { + this.nome = nome; + this.pop = pop; + this.pos = pos; + this.vivo = true; + territori = new LinkedList<>(); + territori.add(new Territorio(nome, this, pos)); + } + + public boolean isVivo() { + return vivo; + } + + public void kill() { + this.vivo = false; + } + + public String getNome() { + return nome; + } + + public int getPop() { + return pop; + } + + public Centroide getPos() { + return pos; + } + + + public LinkedList<Territorio> getTerritori() { + return territori; + } + + + @Override + public String toString() { + return "Comune{" + "vivo=" + vivo + ", nome=" + nome + ", pop=" + pop + ", pos=" + pos + '}'; + } + + //FUNZIONI GEOMETRICHE + + public void aggiornaCentroide(){ + Territorio territorio; + Centroide temp = territori.get(0).getPos(); + for(int i = 0; i < territori.size(); i++){ + territorio = territori.get(i); + + } + + + for (Territorio t : territori){ + temp = temp.puntoMedio(t.getPos()); + } + pos = temp; + } + + //FUNZIONI BELLE + public boolean conquista(Territorio target){ + boolean ris = false; + target.getProprietario().territori.remove(target); + if(target.getProprietario().territori.isEmpty()){ + target.getProprietario().kill(); + ris = true; + }else + target.getProprietario().aggiornaCentroide(); + + target.setProprietario(this); + this.territori.add(target); + this.aggiornaCentroide(); + return ris; + } + + public Territorio trovaVicino(ArrayList<Comune> lista){ + + Territorio trovato = new Territorio("Errore", null, null); + double minD = 999999999, cur; + + for(int i = 0; i < lista.size(); i++){ + Comune comune = lista.get(i); + //scorro i comuni + if(comune.isVivo() && !comune.equals(this)){ + //mi trovo in un comune VIVO e diverso da se stesso + for(int j = 0; j < comune.territori.size(); j++){ + Territorio territorio = comune.territori.get(j); + //mi trovo in un territorio generico di questo comune + cur = this.pos.distanza(territorio.getPos()); + //oonfronto la distanza con minD + if(cur < minD){ + minD = cur; + trovato = territorio; + } + } + } + } + return trovato; + } + + @Override + public int compareTo(Comune target){ + if((!this.isVivo()) && target.isVivo()){ + return 1; + } else if (this.isVivo() && (!target.isVivo())){ + return -1; + } else return 0; + } + //FINE FILE + + +}
A
Random.java
@@ -0,0 +1,18 @@
+/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package siciliaguerrabot2020; + +/** + * + * @author Marco + */ +public class Random { + + + + + +}
A
SiciliaGuerraBot2020.java
@@ -0,0 +1,117 @@
+/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package siciliaguerrabot2020; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Scanner; +import java.util.StringTokenizer; + +/** + * + * @author Bi-Rabittoh + */ +public class SiciliaGuerraBot2020 { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + String nomefile = "data.txt"; + int soglia_popolazione = 9000; + + //LEGGO I DATI DA FILE + ArrayList<Comune> comuni_unfiltered = new ArrayList<>(); + Centroide temp; + BufferedReader reader; + StringTokenizer st; + try { + reader = new BufferedReader(new FileReader(nomefile)); + String line = reader.readLine(); + while (line != null){ + st = new StringTokenizer(line); + comuni_unfiltered.add(new Comune(st.nextToken(), Integer.parseInt(st.nextToken()), new Centroide(Double.parseDouble(st.nextToken()), Double.parseDouble(st.nextToken())))); + line = reader.readLine(); + } + } catch (IOException e){ + System.out.println("File non trovato"); + } + + //FILTRO LE CITTA' PER POPOLAZIONE + ArrayList<Comune> comuni = new ArrayList<>(); + for(Comune c : comuni_unfiltered){ + if(c.getPop() >= soglia_popolazione) + comuni.add(c); + } + System.out.println("I comuni in guerra sono " + comuni.size() + ":"); + for(Comune c : comuni){ + System.out.println(c.getNome()); + } + suspance(); + Comune vincitore = combatteteSchiavi(comuni); + System.out.println("Il vincitore è " + vincitore.getNome() + " con " + vincitore.getTerritori().size() + " territori"); + + //todo: analizzare la probabilità di vittoria di ciascun comune + + //FINE MAIN + } + + private static int randomRange(int min, int max) { + if (min >= max) { + throw new IllegalArgumentException("Il secondo parametro deve essere maggiore del primo"); + } + return (int)(Math.random() * ((max - min) + 1)) + min; + } + + private static Comune combatteteSchiavi(ArrayList<Comune> lista){ + + int turno = 1; + Comune attaccante; + Territorio vittima; + int vivi = lista.size(); + int random; + while(true){ + //scelgo un comune casuale come attaccante + random = randomRange(0, vivi - 1); + attaccante = lista.get(random); + vittima = attaccante.trovaVicino(lista); + if(attaccante.conquista(vittima)) + vivi--; + System.out.println("Turno " + turno + ": " + attaccante.getNome() + " conquista il territorio di " + vittima.getNome() + " e arriva a " + attaccante.getTerritori().size() + " territori"); + Collections.sort(lista); + //controllo se la partita è finita + if (vivi == 1){ + break; + } + + turno++; + } + return attaccante; + } + + public static void suspance(){ + System.out.println("Al mio \"INVIO\" scatenate l'inferno..."); + Scanner scanner = new Scanner(System.in); + scanner.nextLine(); + } + + public static void currentStatus(ArrayList<Comune> comuni){ + //fine turno. DEBUG TIME + for(Comune c : comuni){ + System.out.println(c.getNome() + ": Territori:"); + for(Territorio t : c.getTerritori()){ + System.out.println("\t" + t.getNome()); + } + System.out.println(); + } + System.out.println("\n"); + //pause(); + //FINE DEBUG*/ + } +}
A
Territorio.java
@@ -0,0 +1,40 @@
+/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package siciliaguerrabot2020; + +/** + * + * @author Bi-Rabittoh + */ +public class Territorio { + private final String nome; + private Comune proprietario; + private final Centroide pos; + + public Territorio(String nome, Comune proprietario, Centroide pos) { + this.nome = nome; + this.proprietario = proprietario; + this.pos = pos; + } + + public Comune getProprietario() { + return proprietario; + } + + public void setProprietario(Comune proprietario) { + this.proprietario = proprietario; + } + + public Centroide getPos() { + return pos; + } + + public String getNome() { + return nome; + } + + +}
A
data.txt
@@ -0,0 +1,390 @@
+Acate 8664 37.0262299 14.4940459 +Aci-Bonaccorsi 2927 37.5984189 15.1082228 +Aci-Castello 18107 37.5555615 15.1466519 +Aci-Catena 28434 37.6066145 15.1421611 +Aci-Sant'Antonio 17188 37.6064744 15.1262439 +Acireale 52862 37.6128242 15.1658745 +Acquaviva-Platani 1058 37.5727705 13.7026513 +Acquedolci 5544 38.0571104 14.5897066 +Adrano 36413 37.6627635 14.8357423 +Agira 8346 37.6573208 14.5226367 +Agrigento 59152 37.3110710 13.5768652 +Aidone 5290 37.4177891 14.4443769 +Alcamo 45763 37.9807664 12.9603541 +Alcara-li-Fusi 2257 38.0208984 14.7027556 +Alessandria-della-Rocca 3231 37.5674573 13.4543593 +Ali' 869 38.0269000 15.4171031 +Ali'-Terme 2567 38.0062223 15.4237126 +Alia 3975 37.7810662 13.7150026 +Alimena 2272 37.6948231 14.1146624 +Aliminusa 1345 37.8649544 13.7823346 +Altavilla-Milicia 6432 38.0421014 13.5490096 +Altofonte 10031 38.0429801 13.2977566 +Antillo 1004 37.9768031 15.2443977 +Aragona 9713 37.4031374 13.6179721 +Assoro 5356 37.6283701 14.4239995 +Augusta 34045 37.2337469 15.2189972 +Avola 31677 36.9098169 15.1344290 +Bagheria 55537 38.0783238 13.5069548 +Balestrate 6216 38.0523298 13.0082976 +Barcellona-Pozzo-di-Gotto 41293 38.1487398 15.2113962 +Barrafranca 13070 37.3756171 14.2010745 +Basico' 681 38.0614823 15.0634718 +Baucina 1996 37.9260669 13.5382645 +Belmonte-Mezzagno 10737 38.0477793 13.3886683 +Belpasso 23606 37.5957442 14.9843325 +Biancavilla 23567 37.6462078 14.8680935 +Bisacquino 5005 37.7035693 13.2607699 +Bivona 4041 37.6183041 13.4407541 +Blufi 1137 37.7530825 14.0740518 +Bolognetta 3890 37.9662634 13.4568527 +Bompensiere 637 37.4726515 13.7813876 +Bompietro 1538 37.7437793 14.0955831 +Borgetto 6859 38.0480875 13.1446972 +Brolo 5704 38.1565716 14.8266827 +Bronte 19332 37.7871668 14.8341130 +Buccheri 2180 37.1262277 14.8509099 +Burgio 2898 37.6006064 13.2912510 +Buscemi 1157 37.0856568 14.8842442 +Buseto-Palizzolo 3152 38.0269978 12.7186121 +Butera 5070 37.1897267 14.1830682 +Caccamo 8390 37.9337141 13.6660957 +Calamonaci 1405 37.5254433 13.2904375 +Calascibetta 4713 37.5920134 14.2716995 +Calatabiano 5392 37.8220016 15.2290312 +Calatafimi-Segesta 7233 37.9159045 12.8635913 +Caltabellotta 4137 37.5785700 13.2177177 +Caltagirone 39447 37.2371809 14.5132361 +Caltanissetta 60139 37.4899089 14.0632893 +Caltavuturo 4323 37.8219909 13.8912401 +Camastra 2124 37.2533039 13.7927968 +Cammarata 6440 37.6310671 13.6324857 +Campobello-di-Licata 10312 37.2594922 13.9193704 +Campobello-di-Mazara 10798 37.6355629 12.7477564 +Campofelice-di-Fitalia 576 37.8266686 13.4863599 +Campofelice-di-Roccella 6418 37.9910408 13.8864212 +Campofiorito 1379 37.7548097 13.2698437 +Campofranco 3341 37.5123261 13.7135771 +Camporeale 3556 37.8982430 13.0949691 +Camporotondo-Etneo 3805 37.5666702 15.0041840 +Canicatti' 34297 37.3608303 13.8502904 +Canicattini-Bagni 7375 37.0340229 15.0643323 +Capaci 10389 38.1715994 13.2394146 +Capizzi 3451 37.8488577 14.4791926 +Capo-d'Orlando 13023 38.1634055 14.7461145 +Capri-Leone 4435 38.0873120 14.7298060 +Carini 32917 38.1315816 13.1810736 +Carlentini 17509 37.2736806 15.0160394 +Caronia 3545 38.0241919 14.4410770 +Casalvecchio-Siculo 1009 37.9591035 15.3232483 +Cassaro 852 37.1061774 14.9483310 +Castel-di-Iudica 4753 37.4946362 14.6470025 +Castel-di-Lucio 1423 37.8874511 14.3132696 +Castelbuono 9291 37.9324499 14.0874630 +Casteldaccia 10609 38.0537331 13.5296719 +Castellammare-del-Golfo 14986 38.0199782 12.8868686 +Castellana-Sicula 3677 37.7818552 14.0430987 +Castell'Umberto 3372 38.0848302 14.8068162 +Castelmola 1090 37.8590439 15.2780444 +Casteltermini 8588 37.5408952 13.6434658 +Castelvetrano 30586 37.6837205 12.7926485 +Castiglione-di-Sicilia 3429 37.8830762 15.1224775 +Castrofilippo 3116 37.3492060 13.7493683 +Castronovo-di-Sicilia 3279 37.6799561 13.6045232 +Castroreale 2726 38.0991757 15.2106858 +Catania 298957 37.5028120 15.0883146 +Catenanuova 5069 37.5708942 14.6930969 +Cattolica-Eraclea 4235 37.4383835 13.3958040 +Cefala'-Diana 1032 37.9166785 13.4643771 +Cefalu' 13799 38.0394687 14.0220595 +Centuripe 5720 37.6240234 14.7401331 +Cerami 2258 37.8094292 14.5083038 +Cerda 5320 37.9035447 13.8151579 +Cesaro' 2615 37.8444829 14.7150964 +Chiaramonte-Gulfi 8128 37.0324695 14.7023201 +Chiusa-Sclafani 3122 37.6781062 13.2712512 +Cianciana 3670 37.5213834 13.4346930 +Ciminna 3927 37.8974907 13.5605967 +Cinisi 11456 38.1573281 13.1084384 +Collesano 4122 37.9195219 13.9366867 +Comiso 30002 36.9471468 14.6058763 +Comitini 974 37.4090306 13.6440600 +Condro' 493 38.1742742 15.3279004 +Contessa-Entellina 1949 37.7288435 13.1842715 +Corleone 11358 37.8124653 13.3015965 +Custonaci 5267 38.0742015 12.6885941 +Delia 4597 37.3572607 13.9237678 +Enna 28125 37.5675948 14.2797059 +Erice 28642 38.0364785 12.5837630 +Falcone 2926 38.1180757 15.0801258 +Favara 33557 37.3188724 13.6632740 +Favignana 4394 37.9312414 12.3297117 +Ferla 2647 37.1197165 14.9399182 +Ficarazzi 11081 38.0892715 13.4689106 +Ficarra 1663 38.1090085 14.8290599 +Fiumedinisi 1595 38.0257830 15.3801288 +Fiumefreddo-di-Sicilia 9740 37.7950174 15.2103915 +Floresta 565 37.9870646 14.9082694 +Floridia 22295 37.0894043 15.1592762 +Fondachelli-Fantina 1149 37.9857700 15.1733548 +Forza-d'Agro' 889 37.9149481 15.3340503 +Francavilla-di-Sicilia 4193 37.9015844 15.1360419 +Francofonte 12553 37.2274495 14.8815203 +Frazzano' 838 38.0731936 14.7438838 +Furci-Siculo 3307 37.9613491 15.3804268 +Furnari 3627 38.1054273 15.1246620 +Gaggi 2988 37.8598901 15.2217324 +Gagliano-Castelferrato 3771 37.7130984 14.5377844 +Galati-Mamertino 2930 38.0330961 14.7718352 +Gallodoro 393 37.9017874 15.2932121 +Gangi 7266 37.7971214 14.2058150 +Gela 77175 37.0661825 14.2503718 +Geraci-Siculo 1972 37.8573816 14.1542964 +Giardinello 2171 38.0891984 13.1581227 +Giardini-Naxos 9441 37.8252834 15.2667928 +Giarratana 3240 37.0480575 14.7938418 +Giarre 27108 37.7264034 15.1839451 +Gibellina 4426 37.8135498 12.8703098 +Gioiosa-Marea 7238 38.1738729 14.8965179 +Giuliana 2155 37.6740161 13.2376941 +Godrano 1121 37.9042358 13.4294974 +Grammichele 13315 37.2146575 14.6364709 +Graniti 1539 37.8902690 15.2259321 +Gratteri 1024 37.9660239 13.9738991 +Gravina-di-Catania 27808 37.5583017 15.0518899 +Grotte 6014 37.4030213 13.7016533 +Gualtieri-Sicamino' 1906 38.1637039 15.3179178 +Isnello 1741 37.9446392 14.0067406 +Isola-delle-Femmine 7015 38.1944938 13.2500100 +Ispica 15186 36.7855985 14.9073171 +Itala 1690 38.0509993 15.4370351 +Joppolo-Giancaxio 1236 37.3875379 13.5557903 +Lampedusa-e-Linosa 6137 35.5027009 12.6091837 +Lascari 3349 38.0002305 13.9404552 +Leni 694 38.5559677 14.8259667 +Lentini 24093 37.2865228 15.0005921 +Leonforte 14030 37.6399793 14.3931905 +Lercara-Friddi 7099 37.7481969 13.6029826 +Letojanni 2711 37.8794545 15.3056929 +Librizzi 1828 38.0968357 14.9591835 +Licata 39280 37.1022420 13.9375834 +Licodia-Eubea 3179 37.1582469 14.7071716 +Limina 914 37.9418344 15.2721413 +Linguaglossa 5459 37.8426841 15.1418305 +Lipari 11087 38.4673831 14.9540176 +Longi 1614 38.0283926 14.7532429 +Lucca-Sicula 1964 37.5796952 13.3064026 +Maletto 4092 37.8298382 14.8659788 +Malfa 874 38.5789394 14.8336810 +Malvagna 846 37.9176692 15.0550972 +Mandanici 655 38.0013430 15.3184150 +Maniace 3656 37.8844888 14.7987898 +Marianopoli 2122 37.5985654 13.9168697 +Marineo 6872 37.9515264 13.4152861 +Marsala 82514 37.7983893 12.4376064 +Mascali 13039 37.7574367 15.1961096 +Mascalucia 27482 37.5791658 15.0487338 +Mazara-del-Vallo 51436 37.6508415 12.5909648 +Mazzarino 12136 37.3054347 14.2151429 +Mazzarra'-Sant'Andrea 1611 38.0894829 15.1346620 +Mazzarrone 3777 37.0946289 14.5660035 +Melilli 12883 37.1807444 15.1265347 +Menfi 12892 37.5988416 12.9686923 +Meri' 2323 38.1670006 15.2509003 +Messina 243997 38.1921877 15.5567320 +Mezzojuso 3012 37.8656045 13.4657845 +Milazzo 32676 38.2192994 15.2404782 +Milena 3266 37.4707520 13.7362434 +Militello-in-Val-di-Catania 7995 37.2758943 14.7943365 +Militello-Rosmarino 1350 38.0471803 14.6779023 +Milo 1057 37.7243465 15.1168654 +Mineo 5326 37.2663579 14.6910605 +Mirabella-Imbaccari 5766 37.3286817 14.4473771 +Mirto 1060 38.0854617 14.7523846 +Misilmeri 26733 38.0344242 13.4534836 +Misterbianco 47912 37.5189069 15.0079924 +Mistretta 5200 37.9294962 14.3626531 +Modica 54332 36.8589486 14.7608840 +Mojo-Alcantara 778 37.9012246 15.0524602 +Monforte-San-Giorgio 3000 38.1574445 15.3823056 +Mongiuffi-Melia 710 37.9117295 15.2776225 +Monreale 36273 38.0812346 13.2896946 +Montagnareale 1736 38.1332431 14.9476282 +Montalbano-Elicona 2609 38.0251790 15.0174447 +Montallegro 2603 37.3935357 13.3505656 +Montedoro 1689 37.4543441 13.8177975 +Montelepre 6354 38.0898365 13.1724878 +Montemaggiore-Belsito 3710 37.8474546 13.7623348 +Monterosso-Almo 3314 37.0907507 14.7655804 +Montevago 3025 37.7021511 12.9896015 +Motta-Camastra 870 37.8931398 15.1725808 +Motta-d'Affermo 886 37.9814300 14.3028864 +Motta-Sant'Anastasia 11203 37.5141705 14.9668330 +Mussomeli 11211 37.5788627 13.7523356 +Naro 8466 37.2947121 13.7953156 +Naso 4232 38.1217472 14.7902578 +Nicolosi 6959 37.6142535 15.0265019 +Nicosia 14755 37.7485622 14.3982499 +Niscemi 26488 37.1489132 14.3865834 +Nissoria 2969 37.6562102 14.4484157 +Nizza-di-Sicilia 3660 37.9960558 15.4129350 +Noto 23548 36.8917412 15.0710007 +Novara-di-Sicilia 1517 38.0148919 15.1291695 +Oliveri 2124 38.1246397 15.0616115 +Pace-del-Mela 6243 38.1810657 15.3070857 +Paceco 11350 37.9798139 12.5576521 +Pachino 21685 36.7157865 15.0899045 +Pagliara 1263 37.9865190 15.3607507 +Palagonia 16406 37.3293909 14.7458036 +Palazzo-Adriano 2354 37.6821555 13.3801499 +Palazzolo-Acreide 9030 37.0633942 14.9045016 +Palermo 663173 38.1156369 13.3612966 +Palma-di-Montechiaro 24176 37.1937155 13.7660953 +Pantelleria 7664 36.8290436 11.9436269 +Partanna 11309 37.7288679 12.8897022 +Partinico 31698 38.0449581 13.1210865 +Paterno 3551 40.3793888 15.7337777 +Patti 13320 38.1412124 14.9659232 +Pedara 12283 37.6189019 15.0609564 +Petralia-Soprana 3530 37.7979140 14.1077543 +Petralia-Sottana 3109 37.8081647 14.0913229 +Petrosino 7619 37.7088891 12.5011164 +Pettineo 1462 37.9672011 14.2906458 +Piana-degli-Albanesi 5996 37.9964141 13.2838023 +Piazza-Armerina 20808 37.3834581 14.3697926 +Piedimonte-Etneo 3946 37.8079278 15.1776249 +Pietraperzia 7316 37.4210645 14.1381069 +Piraino 3944 38.1613182 14.8626141 +Poggioreale 1633 37.7651261 13.0370329 +Polizzi-Generosa 3795 37.8123219 14.0003243 +Pollina 3111 37.9933406 14.1434503 +Porto-Empedocle 17116 37.2865359 13.5268518 +Portopalo-di-Capo-Passero 3656 36.6833937 15.1355912 +Pozzallo 18864 36.7260522 14.8457021 +Priolo-Gargallo 12097 37.1566624 15.1881375 +Prizzi 5295 37.7220392 13.4328920 +Racalmuto 9045 37.4088030 13.7332343 +Raccuja 1226 38.0554289 14.9109698 +Raddusa 3307 37.4740809 14.5333814 +Raffadali 13208 37.4042834 13.5318389 +Ragalna 3468 37.6355778 14.9479257 +Ragusa 72511 36.9261036 14.7283867 +Ramacca 10682 37.3851270 14.6935803 +Randazzo 11228 37.8777093 14.9503893 +Ravanusa 13105 37.2677696 13.9699805 +Realmonte 4508 37.3102912 13.4629707 +Regalbuto 7636 37.6508249 14.6410043 +Reitano 891 37.9730804 14.3443614 +Resuttano 2278 37.6798237 14.0304417 +Ribera 19640 37.5026236 13.2661779 +Riesi 11385 37.2831022 14.0832563 +Riposto 14962 37.7317270 15.2034768 +Roccafiorita 229 37.9320011 15.2684006 +Roccalumera 4205 37.9692469 15.3884462 +Roccamena 1618 37.8354585 13.1539109 +Roccapalumba 2687 37.8069924 13.6395223 +Roccavaldina 1199 38.1816629 15.3724471 +Roccella-Valdemone 739 37.9344840 15.0107571 +Rodi'-Milici 2279 38.1100561 15.1702517 +Rometta 6558 38.1705338 15.4135772 +Rosolini 21445 36.8212351 14.9512226 +Salaparuta 1787 37.7590336 13.0107741 +Salemi 11251 37.8169736 12.8089937 +Sambuca-di-Sicilia 6359 37.6505731 13.1121054 +San-Biagio-Platani 3641 37.5101236 13.5265434 +San-Cataldo 23238 37.4757939 13.9803714 +San-Cipirello 5322 37.9632541 13.1771783 +San-Cono 2970 37.2907861 14.3669224 +San-Filippo-del-Mela 7191 38.1691033 15.2752909 +San-Fratello 4190 38.0180788 14.5991901 +San-Giovanni-Gemini 8085 37.6288794 13.6401961 +San-Giovanni-la-Punta 22136 37.5778346 15.0944914 +San-Giuseppe-Jato 8697 37.9714899 13.1843741 +San-Gregorio-di-Catania 11307 37.5662209 15.1097114 +San-Marco-d'Alunzio 2091 38.0718463 14.7004307 +San-Mauro-Castelverde 1952 37.9168677 14.1914817 +San-Michele-di-Ganzaria 3865 37.2824521 14.4265467 +San-Pier-Niceto 3017 38.1586174 15.3514715 +San-Piero-Patti 3237 38.0515139 14.9680185 +San-Pietro-Clarenza 6670 37.5699739 15.0239024 +San-Salvatore-di-Fitalia 1493 38.0656370 14.7786340 +San-Teodoro 1481 37.8474980 14.7002598 +San-Vito-Lo-Capo 4196 38.1749742 12.7336829 +Santa-Caterina-Villarmosa 5796 37.5908506 14.0328000 +Santa-Cristina-Gela 927 37.9851528 13.3288051 +Santa-Croce-Camerina 9838 36.8283826 14.5252530 +Santa-Domenica-Vittoria 1116 37.9169474 14.9625839 +Santa-Elisabetta 2851 37.4330790 13.5562496 +Santa-Flavia 10491 38.0824647 13.5275829 +Santa-Lucia-del-Mela 4775 38.1406971 15.2826325 +Santa-Margherita-di-Belice 6678 37.6924574 13.0238506 +Santa-Maria-di-Licodia 6851 37.6159278 14.8915299 +Santa-Marina-Salina 876 38.5627209 14.8703203 +Santa-Ninfa 5219 37.7724781 12.8787765 +Santa-Teresa-di-Riva 9134 37.9418631 15.3624647 +Santa-Venerina 8274 37.6872609 15.1409274 +Sant'Agata-di-Militello 13102 38.0687381 14.6346178 +Sant'Agata-li-Battiati 9690 37.5588810 15.0816143 +Sant'Alessio-Siculo 1414 37.9250687 15.3495722 +Sant'Alfio 1686 37.7433912 15.1427738 +Sant'Angelo-di-Brolo 3451 38.1144842 14.8844996 +Sant'Angelo-Muxaro 1552 37.4794218 13.5463715 +Santo-Stefano-di-Camastra 4493 38.0140589 14.3480476 +Santo-Stefano-Quisquina 5103 37.6243368 13.4913885 +Saponara 4065 38.1954255 15.4338786 +Savoca 1729 37.9539754 15.3404584 +Scaletta-Zanclea 2432 38.0465993 15.4650070 +Sciacca 40835 37.5056881 13.0804694 +Sciara 2860 37.9159804 13.7627635 +Scicli 25979 36.7913775 14.7024872 +Scillato 668 37.8574983 13.9056182 +Sclafani-Bagni 481 37.8210466 13.8560349 +Scordia 17330 37.2991903 14.8418542 +Serradifalco 6446 37.4549734 13.8815558 +Siculiana 4684 37.3356063 13.4226565 +Sinagra 2839 38.0840546 14.8493136 +Siracusa 123595 37.0664837 15.2844417 +Solarino 7467 37.1030781 15.1199794 +Sommatino 7428 37.3342852 13.9946566 +Sortino 8975 37.1576154 15.0269993 +Spadafora 5232 38.2219215 15.3771963 +Sperlinga 892 37.7693575 14.3485571 +Sutera 1544 37.5245111 13.7354470 +Taormina 11037 37.8530665 15.2879163 +Terme-Vigliatore 6898 38.1370012 15.1576245 +Termini-Imerese 27502 37.9839487 13.6962640 +Terrasini 11184 38.1469950 13.0854574 +Torregrotta 7202 38.2116259 15.3480800 +Torrenova 4018 38.0906496 14.6777391 +Torretta 4007 38.1313645 13.2328067 +Tortorici 6984 38.0353932 14.8222738 +Trabia 9292 37.9952457 13.6544015 +Trapani 70638 38.0170821 12.5179854 +Trappeto 3090 38.0698104 13.0390694 +Trecastagni 9769 37.6196512 15.0790345 +Tremestieri-Etneo 21520 37.5760664 15.0732341 +Tripi 961 38.0484091 15.0984034 +Troina 9819 37.7866639 14.5915684 +Tusa 3168 37.9832411 14.2364749 +Ucria 1203 38.0467961 14.8813805 +Ustica 1325 38.7091422 13.1931097 +Valderice 11873 38.0368899 12.6123588 +Valdina 1276 38.1918245 15.3712906 +Valguarnera-Caropepe 8347 37.4966924 14.3898246 +Valledolmo 3882 37.7485656 13.8288895 +Vallelunga-Pratameno 3750 37.6830842 13.8326488 +Valverde 315 37.5780953 15.1251079 +Venetico 3814 38.1931109 15.3811271 +Ventimiglia-di-Sicilia 2105 37.9230325 13.5694515 +Viagrande 7707 37.6088732 15.0976268 +Vicari 2959 37.8228534 13.5665793 +Villabate 20062 38.0819485 13.4342206 +Villafranca-Sicula 1457 37.5870652 13.2904747 +Villafranca-Tirrena 9015 38.2360674 15.4325592 +Villafrati 3406 37.9081042 13.4857656 +Villalba 1776 37.6562323 13.8438893 +Villarosa 5433 37.5867237 14.1733245 +Vita 2238 37.8724406 12.8221336 +Vittoria 61712 36.9497018 14.5355044 +Vizzini 6796 37.1619874 14.7507633 +Zafferana-Etnea 9051 37.6904110 15.1051709