Gianni ha N palline, disposte in fila, numerate da 1 a N. Queste palline sono speciali,
perchè sono colorate o di nero o di bianco. In particolare la pallina i sarà bianca se
A[i] = 0 e sarà nera se A[i] = 1. Gianni ha in mente un numero K. Questo numero K è
particolare, perchè divide N (cioè la divisione N / K ha resto 0). Gianni ha a
disposizione tantissima vernice nera e bianca, ma è molto pigro. Si definisca come
distanza tra due palline i,j il valore assoluto della differenza della posizione della
pallina i e della pallina j. Si vuole che se due palline hanno distanza K, allora siano
dello stesso colore. Qual è il numero minimo di palline che Gianni deve colorare per
soddisfare suddetta condizione?
Input (input.txt)
La prima riga dell'input consiste in due numeri, N e K, separati da uno spazio. La
seconda riga dell'input consiste in una sequenza di N numeri, cioè i valori di A[0],
A[1], ..., A[N].
Output (output.txt)
Il file di output dovrà contenere esattamente un numero, il numero minimo di palline
da colorare.
input.txt output.txt
10 2 3
1 0 1 1 0 1 1 0 1 1
SOLUZIONE
Partendo da un punto (0) si salta k palline e si contano quante sono nere e quante sono bianche. Il valore minimo fra bianche e nere è il numero minimo di palline da colorare di quella serie. Sommando i minimi di tutte le serie si ottiene il minor numero di palline da colorare:
giovedì 30 gennaio 2014
[C++] Gara
C'è una gara di corsa in città. A partecipare a questa gara ci sono N persone. La gara
viene svolta in un rettilineo ("infinito"). Tutti i corridori corrono nella stessa
direzione. I partecipanti sono numerati da 1 a N. La gara non è completamente equa.
Infatti ogni partecipante non parte dallo stesso punto, ma ha un vantaggio di un certo
numero di metri (considerato rispetto al punto di partenza). Si consideri il vettore A,
A[i] denota il vantaggio in metri del partecipante numero i. Inoltre non ogni
partecipante della corsa procede alla stessa velocità. In particolare il partecipante con
numero i correrà con una velocità di B[i], espressa in metri per unità di tempo.
Vengono dati in input M valori di tempo, dire per ogni valore di tempo fornito in
input qual è il partecipante che si trova in vantaggio, ovvero più distante dal punto di
partenza, considerando che corra con una velocità costante (se più partecipanti si
trovano alla stessa distanza dalla partenza, considerare quello con numero più
piccolo).
Input (input.txt)
La prima riga dell'input contiene due numeri, N e M, separati da uno spazio.
La riga successiva contiene N numeri separati da uno spazio, cioè i valori di A[1],
A[2], ... , A[N].
La riga successiva contiene N numeri separati da uno spazio, cioè i valori B[1],
B[2], ..., B[N].
L'ultima riga dell'input contiene M numeri, separati da uno spazio, gli M valori di
tempo per cui si dovrà computare una risposta come descritto dal testo del problema.
Output (output.txt)
Il file di output dovrà contenere esattamente M righe. Data la sequenza degli M
valori di tempo, si stampi per ogni riga il numero del giocatore che si trova in
vantaggio (seguendo la consegna del testo del problema).
input.txt output.txt
2 2 1 2
1 0
4 6
0 1
SOLUZIONE
Per ogni valore di tempo si calcola la distanza di arrivo, poi si terrà conto della distanza massima.
viene svolta in un rettilineo ("infinito"). Tutti i corridori corrono nella stessa
direzione. I partecipanti sono numerati da 1 a N. La gara non è completamente equa.
Infatti ogni partecipante non parte dallo stesso punto, ma ha un vantaggio di un certo
numero di metri (considerato rispetto al punto di partenza). Si consideri il vettore A,
A[i] denota il vantaggio in metri del partecipante numero i. Inoltre non ogni
partecipante della corsa procede alla stessa velocità. In particolare il partecipante con
numero i correrà con una velocità di B[i], espressa in metri per unità di tempo.
Vengono dati in input M valori di tempo, dire per ogni valore di tempo fornito in
input qual è il partecipante che si trova in vantaggio, ovvero più distante dal punto di
partenza, considerando che corra con una velocità costante (se più partecipanti si
trovano alla stessa distanza dalla partenza, considerare quello con numero più
piccolo).
Input (input.txt)
La prima riga dell'input contiene due numeri, N e M, separati da uno spazio.
La riga successiva contiene N numeri separati da uno spazio, cioè i valori di A[1],
A[2], ... , A[N].
La riga successiva contiene N numeri separati da uno spazio, cioè i valori B[1],
B[2], ..., B[N].
L'ultima riga dell'input contiene M numeri, separati da uno spazio, gli M valori di
tempo per cui si dovrà computare una risposta come descritto dal testo del problema.
Output (output.txt)
Il file di output dovrà contenere esattamente M righe. Data la sequenza degli M
valori di tempo, si stampi per ogni riga il numero del giocatore che si trova in
vantaggio (seguendo la consegna del testo del problema).
input.txt output.txt
2 2 1 2
1 0
4 6
0 1
SOLUZIONE
Per ogni valore di tempo si calcola la distanza di arrivo, poi si terrà conto della distanza massima.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <cstdlib> #include <iostream> #include <fstream> using namespace std; int N,M,maxi; int main() { ifstream in("input.txt"); ofstream out("output.txt"); in>>N>>M; int a[N],b[N],t[M],r[M],m[N]; for (int i=0;i<N;i++) in>>a[i]; for (int i=0;i<N;i++) in>>b[i]; for (int i=0;i<M;i++) in>>t[i]; for (int i=0;i<M;i++){ int max=0; for (int j=0;j<N;j++) m[j]=a[j]+b[j]*t[i]; for (int j=0;j<N;j++) if (m[j]>max){ max=m[j]; maxi=j+1;} r[i]=maxi; } for (int i=0;i<M;i++) out<<r[i]<<"\n"; return 0; } |
[C++] Salto
Un clown si diverte a saltare. Ha a disposizione N blocchi. I blocchi sono numerati da
1 a N. Il blocco i ha un'altezza di A[i]. Si definisce come difficoltà del salto la
differenza di altezza tra due blocchi (il valore può essere sia negativo che positivo,
negativo se si salta verso il basso, positivo se si salta verso l'alto). Qual è il valore del
salto con difficoltà maggiore, potendo scegliere liberamente due blocchi?
Input (input.txt)
La prima riga dell'input contiene un singolo valore N.
La seconda riga dell'input contiene N valori, separati da uno spazio, cioè i valori
A[1], A[2],..., A[N].
Output (output.txt)
Il file di output dovrà contenere esattamente un numero, cioè il valore del salto con
difficoltà maggiore.
SOLUZIONE
Il salto più difficile è quello fra la pedana con punteggio minore e quella con punteggio maggiore.
1 a N. Il blocco i ha un'altezza di A[i]. Si definisce come difficoltà del salto la
differenza di altezza tra due blocchi (il valore può essere sia negativo che positivo,
negativo se si salta verso il basso, positivo se si salta verso l'alto). Qual è il valore del
salto con difficoltà maggiore, potendo scegliere liberamente due blocchi?
Input (input.txt)
La prima riga dell'input contiene un singolo valore N.
La seconda riga dell'input contiene N valori, separati da uno spazio, cioè i valori
A[1], A[2],..., A[N].
Output (output.txt)
Il file di output dovrà contenere esattamente un numero, cioè il valore del salto con
difficoltà maggiore.
input.txt output.txt 5 6
5 1 6 3 7
SOLUZIONE
Il salto più difficile è quello fra la pedana con punteggio minore e quella con punteggio maggiore.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <cstdlib> #include <iostream> #include<fstream> using namespace std; int N,diff; int main() { ifstream in("input.txt"); ofstream out("output.txt"); in>>N; int a[N],max=0,min; for (int i=0;i<N;i++) in>>a[i]; min=a[1]; for (int i=0;i<N;i++){ if (a[i]>max) max=a[i]; if(a[i]<min) min=a[i];} diff=max-min; out<<diff; return0; } |
[C++] Magia
Un numero si dice magico se composto da 1, 14, 144 combinati anche più volte in modo casuale.
Il programma prende un numero e ritorna YES se è magico, altrimenti NO
esempi:
1441414411 ->YES
1514 -> NO
14444 -> NO
Il programma prende un numero e ritorna YES se è magico, altrimenti NO
esempi:
1441414411 ->YES
1514 -> NO
14444 -> NO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <cstdlib> #include <iostream> #include <fstream> #include <string> using namespace std; string n,r; int l; int main() { ifstream in("input.txt"); ofstream out("output.txt"); in>>n; l= n.length(); for (int i=0; i< l; i++){ if ((char) n[i] == '1'){ if ((char) n[i+1] =='4'){ i++; if ((char) n[i+1] =='4') i++;} }else r="NO";} if (r != "NO") r="YES"; out<<r; return 0; } |
giovedì 9 gennaio 2014
Versioni di Ubuntu
Cosa curiosa è che il numero delle versioni di Ubuntu non è casuale o incrementato, ma indica l' anno e il mese di uscita della versione ufficiale (anno.mese), e il nome? Il nome è sempre composto da un aggettivo e un nome di animale che inziziano con la stessa lettera, e dalla 6.06 (Dapper Drake) vanno in ordine alfabetico:
Versione
|
Nome
|
Rilascio
|
---|---|---|
4.10 |
Warty
Warthog (Facocero
Verrucoso) |
20
ottobre 2004
|
5.04 |
Hoary
Hedgehog (Riccio
Veterano) |
8
aprile 2005
|
5.10 |
Breezy
Badger (Tasso Arioso) |
12
ottobre 2005
|
6.06
LTS |
Dapper
Drake (Papero
Signorile) |
1º
giugno 2006
|
6.10 |
Edgy
Eft (Tritone Tagliente) |
26
ottobre 2006
|
7.04 |
Feisty
Fawn (Cerbiatto
Esuberante) |
19
aprile 2007
|
7.10 |
Gutsy
Gibbon (Gibbone
Coraggioso) |
18
ottobre 2007
|
8.04
LTS |
Hardy
Heron (Airone Audace) |
24
aprile 2008
|
8.10 |
Intrepid
Ibex (Stambecco
Intrepido) |
30
ottobre 2008
|
9.04 |
Jaunty
Jackalope(Lepre cornuta
Disinvolta) |
23
aprile 2009
|
9.10 |
Karmic
Koala (Koala Karmico) |
29
ottobre 2009
|
10.04
LTS |
Lucid
Lynx (Lince
Lucida) |
29
aprile 2010
|
10.10 |
Maverick
Meerkat (Suricato
Indipendente) |
10
ottobre 2010
|
11.04 |
Natty
Narwhal (Narvalo
Elegante) |
28
aprile 2011
|
11.10 |
Oneiric
Ocelot (Gattopardo
Onirico) |
13
ottobre 2011
|
12.04
LTS |
Precise
Pangolin (Pangolino
Preciso) |
26
aprile 2012
|
12.10 |
Quantal
Quetzal (Quetzal
Quantico) |
18
ottobre 2012
|
13.04 |
Raring
Ringtail (Lemure
Impaziente) |
25
aprile 2013
|
13.10 |
Saucy
Salamander (Salamandra
Impertinente) |
17
ottobre 2013
|
14.04 |
Trusty
Tahr (Capra Affidabile) |
17
aprile 2014
|
mercoledì 8 gennaio 2014
CAD per Linux
CAD per Linux
-Free Cad
-Blender Cad
-Medusa
FREE CAD [OPEN SOURCE]
Linux - Mac - Windows
CAD 3D parametrico.
Formati file:FCStd, IGES, STEP e B-Rep.
Installazione su linux (tramite apt-get):
sudo apt-add-repository ppa:freecad-maintainers/freecad-stable -y
sudo apt-get update -y
sudo apt-get install freecad -y
sudo apt-get update -y
sudo apt-get install freecad -y
BLENDERCAD [OPEN SOURCE]
Linux - Mac - Windows
Script per Blender: CAD 3D parametrico per architettura.
Formati file:3DS, DAE, FBX, DXF, OBJ, x, LWO, BVH, SVG, Stanford PLY, STL, VRML, VRML97, X3D.
Installazione su linux (tramite apt-get):
sudo add-apt-repository ppa:fkrull/deadsnakes -y
sudo apt-get update -y
sudo apt-get install python2.6 python2.6-dev -y
sudo ln -s /usr/lib/libgettextlib.so /usr/lib/libgettextlib-0.17.so
sudo ln -s /usr/lib/i386-linux-gnu/libtiff.so.4 /usr/lib/libtiff.so
sudo apt-get install libjpeg62:i386 -y
sudo apt-get install libalut0 -y
sudo apt-get install blender -y
sudo apt-get update -y
sudo apt-get install python2.6 python2.6-dev -y
sudo ln -s /usr/lib/libgettextlib.so /usr/lib/libgettextlib-0.17.so
sudo ln -s /usr/lib/i386-linux-gnu/libtiff.so.4 /usr/lib/libtiff.so
sudo apt-get install libjpeg62:i386 -y
sudo apt-get install libalut0 -y
sudo apt-get install blender -y
solo su 64 bit: sudo apt-get install ia32-libs -y
-scarica http://graphicall.org/239/download
-scompatta ***_blender-*.***-cad-32bit-********.tar.bz2 nella Home e rinominalo in .BC (estratto sarà una cartella di nome linux2).
-scompatta ***_blender-*.***-cad-32bit-********.tar.bz2 nella Home e rinominalo in .BC (estratto sarà una cartella di nome linux2).
~/.BC/blendr
NOTA: Potrebbe non funzionare su tutti i processori 64bit.
MEDUSA [OPEN SOURCE]
Linux - Windows
CAD 3D parametrico per uso personale.
Formati file:she, DXF.
Installazione:
sabato 4 gennaio 2014
Aggiungere MIME ad Apache su Linux
1) Installare XAMMP (32bit, 64bit)
2) Apri /opt/lampp/etc/mime.types come amministratore (esempi:)
sudo nano /opt/lampp/etc/mime.types
sudo gedit /opt/lampp/etc/mime.types
3) Aggiungi il tuo mime come "MIME estensione" (se devi aggiungere il supporto per i vettoriali:
image/svg+xml svg )
4) Per avviare XAMMP: sudo /opt/lampp/lampp start
2) Apri /opt/lampp/etc/mime.types come amministratore (esempi:)
sudo nano /opt/lampp/etc/mime.types
sudo gedit /opt/lampp/etc/mime.types
3) Aggiungi il tuo mime come "MIME estensione" (se devi aggiungere il supporto per i vettoriali:
image/svg+xml svg )
4) Per avviare XAMMP: sudo /opt/lampp/lampp start
Iscriviti a:
Post (Atom)