Ciao! Complimenti per esserti qualificato per la Selezione Nazionale delle Olimpiadi Italiane di Informatica 2021!
Ti chiediamo di leggere attentamente questa pagina per permetterti di comprendere a pieno le regole e l'ambiente di gara che dovrai usare. Questa pagina rimarrà accessibile anche durante la gara.
L'ambiente di gara che dovrai usare sarà lo stesso per tutti i partecipanti, e consiste in un'installazione di Linux in macchina virtuale. Avrai quindi bisogno di installare alcuni programmi sul tuo computer.
La macchina virtuale che ti viene fornita dovrà essere eseguita utilizzando VirtualBox. In più, al di fuori della macchina virtuale dovrai eseguire un piccolo programma che ci consente di controllare che tu non acceda ad Internet o cerchi di violare il regolamento. Infine per controllare che tu svolga la gara in un ambiente adatto (senza l'aiuto di nessuno) dovrai partecipare ad una chiamata su Zoom con il supervisore che ti viene assegnato.
Una macchina virtuale (Virtual Machine, VM) si comporta come un computer dentro il computer, ti permette di avere un secondo sistema operativo installato ed isolato da quello che usi di solito. Nel nostro caso sul tuo computer gira normalmente Windows, Linux o macOS, in più, grazie a VirtualBox girerà anche un'installazione di Linux da noi preparata con installato del software che potrebbe non esserci normalmente nel tuo pc! Attenzione però che vale il vice-versa, all'interno della VM potrebbero non esserci installati tutti i programmi che hai installato fuori dalla VM.
In questo modo possiamo distribuire in modo molto semplice a tutti i partecipanti un ambiente uniforme con installati tutti i programmi di cui avete bisogno, più altro software che controlla la correttezza della gara e che impedisce l'accesso ad Internet.
Segui attentamente questi passaggi per preparare tutto quello di cui hai bisogno per la practice (la gara di prova per controllare che tutto funzioni a dovere) e per la gara ufficiale.
Avrai bisogno di tutti questi software per poter svolgere la gara:
VirtualBox 6.1.28 Oracle VM VirtualBox Extension Pack
.
476ded2cdd42433b2678a47d118de68ca44b969d4afce8c44feb935ceae37044
)
Una volta installato, se sei su Windows o su macOS dovrai anche seguire questi passaggi.
Dal
sito
dove hai scaricato VirtualBox scarica anche il
VirtualBox 6.1.28 Oracle VM VirtualBox Extension Pack
(è un file .vbox-extpack indipendente dal sistema operativo che
stai usando).
Installa il pacchetto andando su File → Preferenze → Estensioni, ed aggiungendolo all'elenco.
Zoom è una famosa applicazione di videochiamata che ci permetterà di controllare che tu svolga la gara in autonomia e senza aiuti esterni. Dovrai condividere solo la webcam e il microfono e non dovrai mai disattivarli fino alla fine della gara.
Visto che il giorno della gara non puoi aprire un browser, invece che fornirti il link per entrare nella riunione ti verrà dato il Meeting ID (un numero di 10 cifre).
La practice è una gara di prova, i cui risultati non conteranno in alcun modo nella classifica finale, che serve a tutti per controllare che il sistema funzioni correttamente il giorno della gara. È quindi davvero importante che tutti i partecipanti accedano alla practice e la usino per fare pratica con le modalità di gara e prendano confidenza con la macchina virtuale.
Naturalmente anche noi dello staff beneficiamo molto da questa practice, ci permette di individuare i problemi prima della gara (e si spera anche di risolverli prima della gara!)
In altre parole, partecipa alla practice! I problemi sono originali e sono preparati dalla squadra che ha partecipato quest'anno alle IOI! Un ottimo allenamento prima della gara ufficiale.
Da molti anni ormai alle nazionali i task utilizzano i grader. A lato pratico il grader permette di separare la lettura dell'input e la scrittura dell'output dalla tua soluzione. Questo ha due grossi vantaggi:
grader.cpp
che legge l'input e chiama il tuo codice
con i dati già letti. Così facendo possiamo implementare molto
semplicemente meccanismi sofisticati per leggere l'input
molto velocemente, e uniformare tra tutti i partecipanti
i tempi di lettura.
Quindi le soluzioni che dovrai scrivere non dovranno includere la
funzione main
, ma solo le funzioni richieste dal
problema (che sono descritte nel testo del problema). Per compilare
correttamente la tua soluzione e il grader ci sono diversi modi, in
una delle sezioni finali di questa guida ci sono delle brevi guide
per i programmi consigliati. Ti consigliamo di sfruttare la practice
per impratichirti anche con questo aspetto di gara.
OII2021
sulla sinistra.Dopo aver fatto il login potrai usare liberamente la macchina virtuale ed accedere alla piattaforma di gara. Senza aver fatto il login non funziona quasi nulla!
Nella barra in alto, dopo qualche secondo dal login, dovrebbe comparire il tuo nome e delle informazioni sulla gara in corso (come il tempo rimanente). Lì verranno mostrati anche eventuali errori di connessione, se dovessi vederne qualcuno in gara è possibile che la tua connessione ad Internet si sia interrotta.
Se dovessi aver premuto per errore
Termina sessione di oii...
ti chiediamo di riavviare la
macchina virtuale. Presta la massima attenzione di non farlo durante
la gara!
Nella macchina virtuale è presente un sistema automatico che controlla che sia presente la connessione ad Internet. Se dovesse rilevare dei problemi (e segnalarteli nella barra in alto) segui queste istruzioni:
Se la macchina virtuale non dovesse avviarsi è possibile che il tuo computer non sia configurato correttamente per la virtualizzazione
Se stai usando Windows è possibile che tu abbia Hypervisor abilitato (ad esempio se stai utilizzando WSL). Per disabilitarlo apri un terminale con i privilegi di amministratore ed esegui il comando bcdedit /set hypervisorlaunchtype off, una volta fatto bisogna riavviare il computer. Al termine della gara potrai abilitare nuovamente Hypervisor con il comando bcdedit /set hypervisorlaunchtype auto.
Se la macchina virtuale non funziona ancora, è possibile che tu non abbia abilitato le opzioni di virtualizzazione nel BIOS. Per abilirarle devi entrare nel BIOS del computer, se non sai come accedere al BIOS puoi seguire questa guida. Una volta entrato nel BIOS devi cercare ed abilitare un'opzione chiamata VT-x (a volte chiamata anche AMD-V, Intel Virtualization Technology, o qualunque cosa faccia riferimento alla virtualizzazione). Senza quell'opzione abilitata la macchina virtuale potrebbe non avviarsi dando un errore abbastanza criptico.
Ecco una semplice introduzione base all'utilizzo della macchina virtuale. Ti consigliamo di utilizzarla e prenderci mano prima della gara, non è difficile e la pratica aiuta molto!
Dopo aver effettuato il login vedrai il Desktop, funziona esattamente come quello di Windows o mac OS: puoi creare cartelle e file usando il tasto destro del mouse. Nel Desktop troverai anche alcune delle applicazioni installate, puoi aprirne una facendo doppio-click.
Se non hai mai usato nessuno degli editor che vedi ti consigliamo di usare CodeLite oppure Geany. Nella sezione seguente trovi una mini-guida per iniziare!
Come browser ti consigliamo di usare Firefox, sembra avere prestazioni migliori di Chromium all'interno della macchina virtuale.
Se su Windows eri solito ad usare Dev-C++ ti consigliamo Geany o CodeLite.
Ti sconsigliamo di usare Code::Blocks, potrebbe avere problemi di stabilità, consigliamo CodeLite (molto simile) oppure Geany (più semplice).
CLion è estremamente pesante se confrontato con gli altri IDE, ti sconsigliamo fortemente di utilizzarlo a meno che tu non disponga di un computer sufficientemente potente.
Se la tua macchina virtuale ha solo 3GB di RAM i seguenti programmi potrebbero avere problemi di memoria, cerca di evitarli: CLion, Eclipse.
Qui trovi l'elenco completo di tutto quello che c'è installato nella macchina virtuale. Ti riassumiamo qui l'elenco dei software che potrebbero interessarti:
borto-pack
installato ma non abilitato)
vim-airline
, ctrlp.vim
,
syntastic
, youcompleteme
,
ultisnips
e vim-snippets
installati ma non
abilitati)