Ciao mondo! con ripetizione di caratteri limitata


79

In una lingua a tua scelta, scrivi un programma che emetta esattamente i caratteri Hello world!seguiti da una nuova riga. Il codice:

  • non utilizzare alcun carattere più di due volte (alfanumerico, simbolo, spazi bianchi ... qualsiasi cosa)
  • non dovrebbe usare alcuna risorsa esterna
  • non dovrebbe usare alcun input dell'utente
  • non dovrebbe produrre altro

Un esempio di un programma Python valido:

print("He%so world!"%(2*'l'))

Un esempio di programma Python non valido (il carattere 'r' viene usato tre volte):

print("Hel"+chr(108)+'o world!')

Il vincitore è chi ha più voti dopo 14 giorni.

EDIT: è stato scelto un vincitore! Grazie a tutti per il lavoro svolto su questa domanda!


25
Che dire della lettera ripetuta o nell'esempio "valido" di Python. Ci sono anche questi: - "'()
Adam Speight,

15
@AdamSpeight che vuoi dire? La lettera viene utilizzata solo due volte, secondo le specifiche.
Josh,

5
@AdamSpeight ... che è letteralmente lo stesso.
VisioN,

4
Penso che intendi dire che un personaggio non dovrebbe apparire più di due volte, cioè non dovrebbe essere ripetuto più di una volta.
Michael Kay,

56
Immagino che Brainfuck sia fuori discussione ...
jub0bs,

Risposte:


61

Rubino (1.9+)

Dato che si tratta di un concorso di popolarità, proviamo a non usare QUALUNQUE dei personaggi di "Hello world!" pur continuando a utilizzare altri personaggi solo un massimo di due volte:

puts("S\107VsbG8gV29ybGQhCg".unpack(?m))

Sono 40 caratteri tra il.

bash

E questo usa la magia unicode.

Appunti:

  • Mentre i caratteri originali appaiono altrove (diversamente dall'esempio ruby), la stringa stampata contiene solo caratteri non ascii.
  • Due dei tre spazi sono in realtà schede, quindi non ci sono caratteri utf-8 che compaiono più di 2 volte
  • Come binario alcuni degli ottetti appaiono più di 2 volte, si spera che ciò non sia contrario alle regole. Sto cercando di risolverli però.

Codice:

echo '𝓗𝐞𝑙𝒍𝓸 𝓦𝗈𝖗𝖑𝘥¡'|iconv -t  asCIi//TRANSLIT

Per coloro che non hanno un font corretto installato è simile al seguente:

codice come immagine

Ecco il hexdump:

00000000  65 63 68 6f 20 27 f0 9d  93 97 f0 9d 90 9e f0 9d  |echo '..........|
00000010  91 99 f0 9d 92 8d f0 9d  93 b8 e2 80 8a f0 9d 93  |................|
00000020  a6 f0 9d 97 88 f0 9d 96  97 f0 9d 96 91 f0 9d 98  |................|
00000030  a5 c2 a1 27 7c 69 63 6f  6e 76 09 2d 74 09 61 73  |...'|iconv.-t.as|
00000040  43 49 69 2f 2f 54 52 41  4e 53 4c 49 54 0a        |CIi//TRANSLIT.|
0000004e

Devi eseguirlo su una macchina in cui il set di caratteri predefinito è utf-8. Ho provato su un OSX10.8 usando iTerm2 con il seguente ambiente:

bash in esecuzione in iTerm2

PHP 5.4

Questo usa zLib: (sfortunatamente usa i caratteri ee o)

<?=gzuncompress('x▒▒H▒▒▒W(▒/▒IQ▒!qh');

hexdump:

00000000  3c 3f 3d 67 7a 75 6e 63  6f 6d 70 72 65 73 73 28  |<?=gzuncompress(|
00000010  27 78 9c f3 48 cd c9 c9  57 28 cf 2f ca 49 51 e4  |'x..H...W(./.IQ.|
00000020  02 00 21 71 04 68 27 29  3b                       |..!q.h');|
00000029

+1

Ecco il codice ruby ​​2.0 che ho usato per testare i duplicati:

d=ARGF.read
p [d.split(//),d.unpack('C*')].map{|x|x.inject(Hash.new(0)){|i,s|i[s]+=1;i}.select{|k,v|v>2}}

2
Mentre apprezzo sempre l'intelligenza Unicode, il tuo tentativo bash non sembra soddisfare le specifiche della domanda. "scrivi un programma che riproduca esattamente i caratteri Hello world!seguito da una nuova riga"
FireFly

14
@FireFly: lo soddisfa. iconv con la codifica target ascii//translittradurrà i caratteri unicode in ascii di base. E ovviamente l'eco aggiungerà la nuova riga, quindi questa si adatta alle specifiche (se non consideriamo la somiglianza degli ottetti)
SztupY

5
Sul mio sistema ottengo Hello World?inveceHello World!
Marin

1
@SztupY oh, hai ragione, mia cattiva. Molto intelligente, mi piace!
FireFly

1
Quanti punti bonus otterresti se il tuo duplicato-controllore fosse anche conforme alle specifiche ripetute? :-)
corsiKa

55

Devi usare linguaggi più espressivi.

Cinese,  6 4   3 caratteri

喂世!

L'esecuzione di Google Traduttore su questo produce Hello world!

(grazie @sreservoir e @Quincunx per l'aggiornamento)


33
+1 per la piega delle regole ... "In una lingua a tua scelta ..."
WallyWest,

4
Lo adoro. Ma com'è esattamente un programma?
Pierre Arlaud,

3
In realtà puoi vederlo come un programma in una lingua di traduzione di Google - per il cinese come sua sotto-lingua :)
Tomas

2
+1. Bella idea 世界 = Shì jiè = Mondo. 你好 = nǐ hǎo = Ciao. "Mondo, ciao!" si traduce in "Hello World!". Si può ancora giocare a golf:你好世!
Justin

2
può essere ulteriormente ridotto 喂世!a scapito di ... beh, non si sta davvero spendendo altro.
muhmuhten,

45

HQ9 +, 1 carattere

H

mantenendolo semplice :)


7
HQ9 + genera però una virgola;)
Josh

8
Continuerei a mantenere la tua risposta ... dopo tutto è un concorso di popolarità, le regole sono per il vento!
Josh,

26
@Josh Questo è uno dei rari eventi in cui mi manca il pulsante downvote nei commenti. Se buttiamo via le regole non rimane più nulla per giustificare il concorso.
Howard,

5
@Howard mi sento sporco. Ho votato il tuo e il commento di Josh
Cruncher

22
Tutte le print Hello Worlddomande sono in realtà who can submit a HQ9+ answer fasterdomande.
totymedli,

44

C, 192 caratteri

#
#
/*$$@``*/ATION_[]={9.};main(BBCDDEEFFGGHJJKKLLMMPPQQRRSSUUVVWWXXYYZZabbdefgghhjjkkmpqqsstuuvvwxyyzz) {printf("He%clo \
world!%c\
",2^7&!8.&~1|~-1?4|5?0x6C:48:6<3>2>=3<++ATION_[0],'@'^79-5);}

Dato che questo non è golf, ho deciso di divertirmi un po 'e provare a usare ogni personaggio esattamente due volte (mentre ne inserisco il meno possibile in un commento, perché è noioso). Mi rendo conto di non essermi comportato molto bene, dato che il mio codice contiene anche un sacco di noioso codice "morto" (non in senso letterale, ma nel senso di caratteri segnaposto usati solo per soddisfare il requisito). Comunque, questo è stato sorprendentemente difficile (ma divertente) con la limitazione di due personaggi, quindi sfortunatamente non sono riuscito a trovare qualcosa di più interessante. Mi ha dato un'idea per un nuovo problema però ...

(Aggiornato per il commento di @ugoren.)


3
Creativamente impressionante. Mi piace.
Josh,

La barra `\` finale tre e quattro rende una continuazione della linea, non una nuova riga. E la linea quattro è terminata da un EOF, rendendolo legale.
Josh,

1
Penso che puoi facilmente scommentarlo .usandolo per le frazioni. Inoltre puoi dichiarare un array e usarlo [].
Ugoren,

@ugoren buona telefonata .; Ho solo pensato di usarlo per l'accesso alla struttura. <s> Per quanto riguarda le dichiarazioni di array, sono fuori da ,s a causa della printfchiamata e anche da ;s, quindi non sono sicuro di come potrei dichiararne uno. </s> Duh, potrei sostituirlo ATION_. ..
FireFly

44

Comando Vim (18 sequenze di tasti)

iHeEsc3alEscio WorRightd!Enter

Non ripete alcun tasto più di due volte.

In un certo senso viola la regola di "input dell'utente" poiché è ancora l'utente che deve inserire quella sequenza, ma suppongo che se lo memorizzi come macro o nnoremap in anticipo conterebbe, dal momento che lo stai semplicemente eseguendo senza fare esplicitamente alcun input per farlo accadere.

Richiede inoltre l' nocompatibleimpostazione, che può essere considerata come l'utilizzo di risorse esterne, quindi ho fornito un'altra variante di seguito:


Comando Vim (21 sequenze di tasti)

iHeEsc3alEscio WorCtrl+[$ad!Enter

Questa variazione non richiede nocompatibledi essere impostata, sebbene si aggiri usando Esctre volte usando Ctrl+[al suo posto.


16
Se stai parlando di personaggi di Right, Esce Enter, non sono letteralmente quei personaggi. Vim tratta i tasti, che ritengo equivalenti ai personaggi ai fini di questo concorso (e la regola "non ripetere più di due volte"). Uso il itasto solo due volte e il <Right>tasto una volta. Per quanto riguarda E, non lo uso mai affatto - ma lo uso <Esc>due volte e <Enter>una volta.
Joe Z.

6
Ora sono deluso dal fatto che Emacs non abbia un comando mx hello-world ...
RemcoGerlich,

4
Anche se lo facesse, sono tre lsecondi.
Joe Z.

1
Dovresti notare che devi :set nocompatible.
jazzpi,

1
Incredibile, ma trovo che io Rightnon usi molto Vim-y.
Gefei,

29

Piet-- Nessun personaggio!

Ciao mondo a Piet


7
Vorrei considerare i codici come "personaggi".
Paŭlo Ebermann,

3
@ PaŭloEbermann Cosa considereresti un codice unico? EG forme diverse? colori? dimensioni? una loro combinazione?
Approaching

1
@ValekHalfHeart la definizione di un codice unico è data nelle specifiche del linguaggio : è un blocco di codice che può essere semplificato come un singolo pixel colorato.
plannapus,

@plannapus In tal caso, questa sfida non è tecnicamente possibile in Piet. Potrei trovare qualcosa di creativo però.
Approaching

@ValekHalfHeart oh non era una critica a questa risposta: lo adoro! Questa sfida non era comunque un codegolf.
plannapus,

26

Perl, 29 caratteri

Questa risposta include gli zoccoli x-rated!

say"07-8*d<#B+>!"^xRATEDkL0GZ

Perl, 23 caratteri

Scarpe più corte, ma senza pornografia. :-( Stessa idea di base però ...

say'0@@lo World!'^"x%,"

Perl, 20 caratteri

Noioso...

say"Hello Wor\x6Cd!"

7
Uhm .... viziosa? +1 :)
Josh,



18

Scala: 34 29 caratteri

Sono orgoglioso di me stesso per questo:

printf("He%c%co world!\n",108,108)

E 'stato davvero difficile superare duplicati' ',' ', virgolette e parentesi. Poi ho scoperto la vecchia printffunzione Java , che convertirà felicemente i numeri in lettere quando viene fornito l'identificatore di %cformato.

Aggiornare

MrWonderful ha fatto una cosa meravigliosa sottolineando che è possibile salvare un sacco di personaggi usando la mia seconda 'l' manualmente nella stringa!

printf("Hel%co world!\n",108)

4
@KCaloux, Dal momento che ti è concesso fino a 2 ', non sarebbe ancora meglio printf ("Hel% co world \ n", 108) a 28?
MrWonderful,

@MrWonderful Penso che tu abbia assolutamente ragione! (Ho anche capito che avevo dimenticato di includere il '!')
KChaloux,

Da quello che ho capito, questa non è una voce valida, anche se un buon tentativo. printfcontiene un rcome fa world. Lo stesso vale per la lettera oche viene utilizzata più di una volta. Questo si basa sulla mia interpretazione della seguente dichiarazione dell'OP "Un esempio di un programma python non valido (il carattere 'r' viene usato tre volte): print("Hel"+chr(108)+'o world!')"
javatarz,

@JAnderton Ho avuto un programma ruby ​​per analizzare la mia sceneggiatura per assicurarmi che non ci fossero personaggi inclusi più di due volte. Leggilo di nuovo Ci sono 2 rs, non 3. Uno in "printf" e uno in "world". La ragione per cui quella di Python non è valida è perché includechr
KChaloux il

16

Python 3 [38 byte]

exec('import '+chr(95)*2+"h\x65llo__")

Non considererei import __hello__una risorsa esterna.


15

Perl: 34 caratteri

$_="He12o wor3d!
";s{\d}{l}g;print

Esecuzione di esempio:

bash-4.1# perl -e '$_="He12o wor3d!
> ";s{\d}{l}g;print'
Hello world!

(Non è un grosso problema. Inserito solo per usare almeno una volta nella mia vita s///con quei delimitatori fantasiosi.)


15

PHP, 33 caratteri

Adoro quanto PHP perdoni e comprenda!

<?=Hel.str_rot13("yb jbe").'ld!';

Prima che fosse cancellato (o se fosse ancora lì, sono totalmente cieco), ho visto un commento che diceva "No brainf * ck?: D". Bene, è praticamente impossibile scrivere una soluzione in BrainF * ck, come sai. Ma sono riuscito a codificare questo, solo per il lulz.

++++++++++[>++++>+++++>++++++>+++++++>++++++++++>+++++++++++>+++++++++<<<<<<<-]
>>>.+++.--.>++.>+.+++++++.<<<<++++++.>>>>>+++++.+.--.>+++++.<.---.+++++.<<<<-.+
+.<------.------.>>>>>+++++.<----------.<<<<--.>>>>++++++++.--------.+++.
<<<<++.+++++++.+++++.-------.>>>>+++++++.--------.<<<<------.++++++.>++++++++.

Se non hai un interprete BF, il codice qui sopra stampa solo quello PHP: P


Non sapevo che nemmeno un codice come questo fosse valido! Il tag php non è chiuso e la stringa Helnon è racchiusa tra virgolette. Inoltre non ne ho mai sentito parlare str_rot13prima.
Aycan Yaşıt,

1
@AycanYaşıt il tag php di chiusura non è richiesto su EOF, e se metti una stringa senza virgolette presuppone che sia una costante non dichiarata con lo stesso contenuto del suo nome e dà un avvertimento
Einacio

1
Puoi evitare l'avvertimento (e salvare il primo .) mettendo Helprima il <?=.
Paŭlo Ebermann,

4
@ PaŭloEbermannHel<?=str_rot13("yb jbe")?>ld!
MirroredFate

2
@ PaŭloEbermann Direi che usarlo è come imbrogliare, dato che non è più puro PHP.
Vereos,

13

HTML Fiddle - 21 caratteri

Hel&#108;o World!<br>

Ciò include la nuova riga finale?
Josh,

Doh ... ha mancato quel requisito! Aggiungerò un video lì dentro.
Briguy37,

7
@netinept: ha chiesto una nuova riga, non un \ncosì direi che <br>conta
Chris,

1
Ma il personaggio rsi ripete nella soluzione. Ho frainteso i requisiti?
javatarz,

2
Anche "l" e "o", ma ogni personaggio può essere usato al massimo due volte.
xem,

12

Rubino: 27 caratteri

puts [:Hel,'o wor',"d!"]*?l

Esecuzione di esempio:

bash-4.1# ruby <<ENDOFSCRIPT
> puts [:Hel,'o wor',"d!"]*?l
> ENDOFSCRIPT
Hello world!

Rubino: 25 caratteri

(Basato sul commento di Vache.)

puts 'He'+?l*2+"o world!"

Rubino: 23 caratteri

(Copia della risposta Powershell di Danko Durbić .)

puts"He#{?l*2}o world!"

puts 'He'+'l'*2+'o world!'è un personaggio più corto!
vedi

3
Ma ha 6 "'' 's ...
arte

ahah ero così concentrato sui personaggi delle lettere che non me ne sono mai accorto. non importa!
Guarda il

1
Rimuovi lo spazio dopo le put e rendilo 23. -puts"He#{?l*2}o world!"
Zero Fiber

1
@SampritiPanda, pinclude le virgolette nell'output. Preferisco attenermi rigorosamente al formato di output richiesto. Ma hai ragione, lo spazio non è necessario. Grazie.
arte

12

JavaScript, 66 caratteri

alert('Hel'+window.atob("\x62G8gd29ybGQhCg=="));//rH+in.\x689yQhC;

Ispirato a FireFly, ogni personaggio utilizzato da questo codice viene utilizzato esattamente due volte.


Penso che ti sia permesso di usare alcuni personaggi una sola volta e puoi rilasciare il commento.
John Dvorak,

2
@JanDvorak - beh, certo che avrebbe potuto farlo in quel modo - ma penso che questa soluzione meriti un voto per la pura volontà di sangue di usare ogni personaggio esattamente due volte. :-)
Bob Jarvis,

6
+1, ma è facile usare ogni personaggio esattamente due volte se aggiungi commenti senza senso.
Camilo Martin,

11

C - 43 personaggi

main(){printf("Hel%co World!%c",'k'+1,10);}

Produzione

Hello World!

Il personaggio conta

' ' Count: 1    '!' Count: 1    '"' Count: 2    '%' Count: 2    ''' Count: 2
'(' Count: 2    ')' Count: 2    '+' Count: 1    ',' Count: 2    '0' Count: 1
'1' Count: 2    ';' Count: 1    'H' Count: 1    'W' Count: 1    'a' Count: 1
'c' Count: 2    'd' Count: 1    'e' Count: 1    'f' Count: 1    'i' Count: 2
'k' Count: 1    'l' Count: 2    'm' Count: 1    'n' Count: 2    'o' Count: 2
'p' Count: 1    'r' Count: 2    't' Count: 1    '{' Count: 1    '}' Count: 1

Non hai bisogno mainecc?
FireFly

@FireFly credo di si! Ha detto di scrivere un programma.
Kirk Backus,

Questo è C ma non C ++. C ++ non ha int implicito (e non puoi risparmiarne un altro i).
Ben Voigt,

@BenVoigt Okie dokie!
Kirk Backus,


9

nginx.conf

return  200 "He&#x6clo wo&#x72ld!\n";

In azione:

% curl -6 http://localhost/ | lynx -dump -stdin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    21  100    21    0     0  20958      0 --:--:-- --:--:-- --:--:-- 21000

   Hello world!

%

Ci sono 4 spazi in questa soluzione ...
Josh,

3
@Josh, in realtà, ci sono 5. Ma non potresti considerare che due delle prime quattro sono schede, e quindi l'ultima è uno spazio non interrompibile? :-)
CNST

Per me va bene!
Josh,

@Josh, in realtà, ora che stiamo usando HTML, non è più necessario set. Ora ha solo 3 spazi, ognuno dei quali potrebbe essere una scheda!
CNST

Molto ben fatto.
Josh,

9

Comando Emacs (15 battute)

He<Ctrl-3>l<Left>o wor<End>d!<Enter>

Se quella risposta Vim è legale, anche questo deve essere :)

Scherzi a parte, macro può diventare anche :)

Più assurdità a parte, probabilmente posso spremerne un po 'di più, ma questo sembra essere abbastanza buono per il momento (dal momento che batte VIM).

PS, per favore ignora tutte le mie sciocchezze (io (raramente, ma) uso anche Vim!).


2
Penso ancora a vim> emacs.
Joe Z.

6

Befunge 98

a"!dlrow ol":'e'Hck,@

Ecco una versione in cui ogni personaggio appare due volte.

bka!e:dw"H@!dlrow  ol":'e'Hbk,a,@

Lascia un mucchio di spazzatura in pila.

Come bonus, ogni singolo personaggio ha qualcosa fatto con esso dall'IP.


6

Malbolge

(=<`#9]~6ZY32Vw/.R,+Op(L,+k#Gh&}Cdz@aw=;zyKw%ut4Uqp0/mlejihtfrHcbaC2^W\>Z,XW)UTSL53\HGFjW

Sfortunatamente, questo sembra stampare Hello, world.invece di Hello world!\n:( Provalo online! Impressionante, ma non valido.
DLosc

5

In realtà non mi piace barare: P

Pitone

print("!dlrow os%eH"[::-1]%('l'*2))

2
Dovresti specificare che è per Python2. In python3 ottieni la stringa invertita come output e poi a TypeError.
Bakuriu,

1
Per l'uso in Py3K l'argomento di stampa deve essere racchiuso tra parentesi. print("!dlrow os%eH"[::-1]%('l'*2))funziona in entrambe le versioni (Python2 e Py3K).
AMK

4

GolfScript

'He

o world!'n/"l"*

Sostituisce due nuove righe (fortunatamente la terza, necessaria per la sostituzione, è fornita dall'integrato n), usando entrambi i tipi di stringhe letterali per evitare copie quadruplicate di un segno di virgolette. Poiché lè l'unico carattere che compare più di due volte nella stringa originale, non è troppo difficile.


Hai dimenticato il "!".
Howard,

@Howard, l'ho perso. Ops.
Peter Taylor,

La lettera o viene ripetuta anche
Adam Speight,

1
@AdamSpeight: c'è solo il doppio della lettera o. Le regole dicono che non è permesso avere un personaggio più di due volte .
Programma FOX il

4

Hmm.

In C, date queste regole, possiamo avere solo una #define(a causa di ie n) e al massimo due chiamate di funzione OR definizioni ( (e )).

Presumo che ci sia praticamente solo un modo per farlo (anche se probabilmente mi sbaglio):

main(){puts("Hello w\x6fr\154d!");}

Hai ancora bisogno di produrre la nuova riga finale. Fare questa sfida in C è difficile ...
Josh,

1
@Josh devo solo usare puts()invece di printf().
Oberon,

2
Ma cosa c'è di sbagliato oin in world?
VisioN,

@VisioN In una vecchia bozza dello stesso codice (prima di rendermi conto di quanto fosse davvero difficile scrivere un programma del genere) ho usato un'altra 'o' altrove. Ma questo non è code-golf , quindi suppongo che non debba essere risolto.
Oberon,

4
In effetti, non sono sicuro del motivo per cui ogni risposta mostra un conteggio dei caratteri.
Oberon,

4

BASH

printf 'Hel\x6co world!\n'

Cred @manatwork

echo $'Hel\x6c\x6f world!'

Il primo ha 3 "e" e 3 "o".
arte

@manatwork: Gag; grazie;)
Runium

In Bash si può saltare -eutilizzando la speciale $'…'sintassi: echo $'Hel\x6c\x6f world!'.
arte

4

C - 46 personaggi

main(){printf("He%clo wor%cd!\x0d",'l',108);}

Stampa:

Ciao mondo!


Se stai mirando al golf, main(){printf("He%clo world!%c",108,10);}dovrebbe funzionare e ti farà risparmiare qualche personaggio.
FireFly,

@FireFly hai ragione, mi salveresti 3 personaggi. Anche il tuo suggerimento funziona perfettamente.
Phillip Kinkade,

4

Fuga

Dal wiki di esolang:

inserisci qui la descrizione dell'immagine

E puoi ascoltare il codice sorgente .


11
Direi che questo non è valido. Posso vedere più di 4 c centrali nella mano destra.
Justin,

4
Per non parlare della stringa di quattro G consecutivi nella nona misura.
Joe Z.

Hai scritto questo o solo renderlo? Dato che ti colleghi al MIDI dell'archivio esolang.
FireFly,

4
-1 per plagio. Questo è dal wiki di esolang . Non lo citi. Modifica: ripristinato, ora viene citato il wiki di esolang.
Justin,

-1 per l'utilizzo della stessa nota più di 2 volte.
Erik the Outgolfer,

4

PHP

32 caratteri

Nota come non sto usando un personaggio più di due volte, poiché l! = L

He<?=strtolower("LLO WOR");?>ld!

Si noti inoltre che, nonostante Stack Overflow lo elimini nella rappresentazione, c'è un'interruzione di riga dopo il !.


1
Stai usando tre spazi, ma suppongo che questo possa essere risolto rimuovendo quelli vicino ai tag PHP! : P
Vereos,

1
È stato veloce, anche se mi sono reso conto prima di leggere il tuo commento (da un'altra risposta in realtà)
Francisco Presencia,

L'uscita "H" non dovrebbe essere maiuscola?
David Cary,

Completamente vero, mancava anche quello):
Francisco Presencia, il

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.