Sunteți pe pagina 1din 44

 2014-2015

Hour of Code CUPRINS


http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

The Magic Behind Google


http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
I. ”InfoCNTV” la C.N.T.V.
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
2
De la C.N.T.V. la ”Visul American” și înapoi 3
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs
II. Articole. „Lider
Studii de cazEuropean” 4
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Combinatorica în informatică. Aranjamente geometrice 4
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
O ameliorare a timpului de execuție pentru algoritmului de 8
sortare MergeSort  2015-2016
Algoritmul Al Kashi. Calcularea lui nk în timp logaritmic 10
Baze de numerație. Aplicații pe biți 12
III. Probleme de concurs 13
IV. Ocolul pamântului în ... Informatică - marca CNTV 16
V. Programatorul cel viteaz ... 100 dintr-o lovitură! 19
Soluții de 100 de puncte la probleme de concurs 19
Rezultate la olimpiade și concursuri naționale 2014-2015 29
VI. Gânduri, pasiuni, experiențe... 31
Despre cum am scris Software cu … Litere 31
C.N.T.V. la competiția studențească de robotică de la 32
Craiova
Calculatorul în activitățile de zi cu zi ale serviciului de 34
secretariat
VII. Mici programatori ... viitori (posibil!) mari programatori 35
VIII. Informatică dar ... nu numai! 40
Top 10 StartUp-uri ce trebuie urmărite în 2015 40
Site-uri utile 43
Certificări C.N.T.V. în domeniul Informaticii 44
Proiecte 2014- 2015 / 2015-2016 45

1
44
1
 2014-2015
”InfoCNTV”
Hour of Code
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
Anul acesta - anul în care împlinește 125 de ani de existență, Colegiul Național ”Tudor Vladimirescu”,
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
locul unde tradiția se întâlnește cu educația de performanță, continuă şi „povestea” revistei de informatică
cu un numărThe Magic
aniversar. Behind
O fericită Google
„coincidenţa” (iar coincidenţă în acest caz nu poate înseamna decât elevi
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
extraordinari, profesori dedicaţi, consecvenţă în pregătire şi seriozitatea actului didactic) face ca acest an cu
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
frumoasă semnificaţie pentru C.N.T.V. să fie de excepţie la nivelul premiilor şi medaliilor obţinute la
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
olimpiadele naţionale şi internaţionale la toate disciplinele.
Să fiiConcurs „Lider European”
profesor de informatică la un colegiu cu performanțe remarcabile – 5 medalii la la Olimpiada
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Națională de Informatică 2014/2015: MĂRGELOIU ANDREI premiul II- medalie aur, COMĂNECI ANDREI -
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
medalie argint, CERNĂIANU MIHAI - medalie argint, ȘTIUCĂ ROXANA - medalie bronz, SĂVOIU
VALENTIN medalie bronz, 4 medalii la Olimpiada Națională de Informatică 2013/1014 : CERNĂIANU
 2015-2016
MIHAI IONUȚ, POPESCU GEORGE AURELIAN, STOCHIȚOIU RADU DUMITRU – liceu și DABELEA IOANA
VIVIANA – gimnaziu), într-o țară al cărei lot național confirmă valoarea școlii românești de informatică: IOI
2015 –1 aur, 2 argint,1 bronz, locul I pe națiuni – Balcaniada de Informatică Juniori Belgrad Serbia 2014 –
prof. Piț-Rada Ionel Vasile și prof. Nodea Eugen; 4 medalii IOI Taipei Taiwan 2014, 4 medalii CEOI Jena
Germania 2014 etc. și care formează specialiști de excepție în acest domeniu e o adevărată onoare. Iar
îndrumarea tinerilor către „informatică” - știința cu cea mai dinamică evoluție, fără de care nu se concepe
societatea tehnologizată/informatizată de azi , pare a fi mai degrabă o profesiune de credinţă.
Prof. Gabriela Nodea

Balcaniada de Informatică Juniori Belgrad Serbia 2014 – Locul I pe naţiuni (foto)


Prof. Piț-Rada Ionel Vasile, Prof. Nodea Eugen

2
44
2
 2014-2015
De la C.N.T.V. la “Visul American” și înapoi
Hour of Code
The Magic Behind Google
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

Este The MagiccăBehind


incontestabil Google
măsura valorii unei școli
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
constă nu doar în valoarea profesorilor săi, dar mai ales,
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
în reușita în viață a elevilor care i-au trecut pragul. Cu o
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
tradiție de 125 de ani în spațiul cultural gorjean,
aniversați anul acesta, și 22 de ani de tradiție a profilului
Concurs „Lider European”
Matematică – Informatică, C.N.”T.V.” a format și
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
formează elevi de excepție care au devenit absolvenți cu
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
strălucite cariere în IT și nu numai.
Unul dintre aceștia este Bogdan Druțu,
absolvent al C.N.”T.V.” în anul 2006, inginer la compania
 2015-2016
americană Google – Mountain View (California) și care, în numai trei ani, a reuşit să ajungă la poziția de
Senior Software Engineer.
În cadrul proiectului ”Ambasadori în licee” derulat de Google în parteneriat cu Ministerul Educației
și Cercetării Științifice, Bogdan Druțu a fost desemnat ”ambasador” al colegiului C.N.”T.V.”, calitate în care a
susținut vineri, 8 mai 2015, două prezentări în amfiteatrul C.N.”T.V.” cu titlul ”The Magic Behind Google” în
care a explicat elevilor semnificația noțiunilor “Computer science” și “Software engineer”.
De asemenea, a împărtășit elevilor ce înseamnă să lucrezi într-o companie multinațională cum e
Google, cu dorința încurajării acestora în alegerea programării ca opțiune de viitor, opțiune atractivă
profesional și financiar, piața de IT din România și din lume fiind departe de a-și fi acoperit necesarul de
specialiști.
Dacă astfel de absolvenți își amintesc cu drag de colegiul pe băncile căruia și-au conturat reperele
pentru viitor și cu recunoștință și respect de dascălii lor, aceast lucru nu poate fi decât motiv de bucurie și
mândrie pentru noi toți.
Prof. Gabriela Nodea

3
44
3
II. Articole. Studiu de caz
 2014-2015
Combinatorica
Hour of Code în informatică. Aranjamente geometrice
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI Prof. Eugen Nodea
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Triunghiul lui Pascal
The Magic Behind Google
Triunghiul lui Pascal este un aranjament geometric al coeficienților binomiali, numit astfel în
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
onoarea matematicianului francez Blaise Pascal.
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457

 2015-2016
1 1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

Orice număr din interiorul triunghiului lui Pascal este situat pe un anumit rând orizontal, sau pe o
anumită “bază”. Un număr oarecare de pe baza (n) se calculează “mergând înapoi” folosind relația de
recurență:

Există şi alte moduri de a aborda numerele din triunghiul lui Pascal, numere ce joacă un rol important în
foarte multe probleme interesante şi se bucură de foarte multe proprietăţi interesante.

“Acest tabel de numere are proprietăţi eminente şi admirabile” spunea Jaques Bernoulli, “în el stă esenţa
combinatoricii, iar cei familiarizaţi cu geometria ştiu că în el sunt ascunse secrete capitale din toată
matematica”.

Proprietăți ale triunghiului lui Pascal


Relații pe rânduri
1. Triunghiul este simetric

2. Suma elementelor unui rând este egală cu dublu sumei rândului precedent și reprezintă puteri ale lui
2.
4
44
 2014-2015

Hour of Code
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

The Magic Behind Google


http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
3. Dacă considerăm fiecare rând a fi un singur număr, atunci acesta va reprezenta puterile lui 11. De la
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
rândul al cincilea încolo, unde vom avea numere formate din mai multe cifre, vom aduna numărul de
Concurs
pe poziţia „Lider
precedentă European”
cu prima cifră a numărului şi tot aşa până când acestea se termină.

http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457

 2015-2016

4. Suma pătratelor rândului este egală cu elementul din mijloc al rândului , altfel spus

Rândul 3: 12 + 32 + 32 + 12 = 1 +9 + 9 + 1 = 20. Elementul din mijloc al rândului 3 x 2 = 6 este 20.


Rândul 4: 12 + 42 + 62 + 42 + 12 = 1 + 16 + 36 + 16 + 1 = 70. Elementul din mijloc al rândului 4 x 2 = 8 este 70.

5. Dacă ne aflăm pe un rând , număr par, atunci:


, unde

6. Dacă ne aflăm pe un rând număr prim atunci toate numerele ce compun acel rând cu excepția lui 1
sunt divizibile cu acel număr prim.
Exemplu:
Rândul 7: 1 7 21 35 35 21 7 1. Numerele 21 şi 35 sunt divizibile cu 7.
Rândul 11: 1 11 55 165 330 462 462 330 165 55 11 1. Numerele 55, 165, 330 şi 462 sunt divizibile cu
11.
55
44
Relații pe diagonale  2014-2015
1. Prima diagonală a triunghiului conţine numai numărul 1. A două diagonală este reprezentată de
Hour
numerele of Code
naturale pozitive în ordine crescătoare, a treia diagonală conţine numerele triunghiulare, a
patra diagonală conţine numerele tetraedre care sunt date de formula
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI , iar
următoarea diagonală este reprezentată de numerele pentatope, ce sunt date de formula
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
.
The Magic Behind Google
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457

 2015-2016
2. Se poate obține seria numerelor șirului Fibonacci dacă se însumează pe diagonale ”line”

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1

Triunghiul aranjamentelor
1
1 1
1 2 2
1 3 6 6
1 4 12 24 24
1 5 20 60 120 120

Regula de completare a triunghiului aranjamentelor folosește formula de recurență:


Ank  (n  k  1) Ank 1, unde k  2 ,

Șirul lui Catalan


Numerele pe care le vom defini în continuare au apărut ca o consecinţă a rezolvării unor probleme de
combinatorică. Numele provine de la matematicianul belgian Eugene Charles Catalan (1814 – 1894).
Acesta le-a obţinut în încercarea de a rezolva o problemă legată de distribuţia parantezelor la
înmulţire, după cum rezultă din tabelul următor:
66
44
n=0 (a) 1 mod
 2014-2015
n=1 (a · b) 1 mod

n=2Hour
((a · b)of Code
· c), (a · (b · c)) 2 moduri
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
n=3 (((a · b) · c) · d), ((a · b) · (c · d)), ((a · (b · c)) · d), (a · ((b · c) · d)), 5 moduri

The
(a · Magic Behind Google
(b · (c · d)))
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
n=4 ((((a · b) · c) · d) · e), (((a · b) · c) · (d · e)), (((a · b) · (c · d)) · e), 14 moduri
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
((a · b) · ((c · d) · e)), ((a · b) · (c · (d · e))), (((a · (b · c)) · d) · e),

Concurs
((a · (b · c))„Lider European”
· (d · e)), ((a · ((b · c) · d)) · e), ((a · (b · (c · d))) · e),
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
(a · (((b · c) · d) · e)), (a · ((b · c) · (d · e))), (a · ((b · (c · d)) · e)),
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
(a · (b · ((c · d) · e))), (a · (b · (c · (d · e))))

 2015-2016
Definiție: Numerele ,n , se numesc numerele Catalan.

Primele numere din acest şir sunt : 1,1,2,5,14,42,132,429,1430,4862,16796,...

Relații echivalente:


Aplicații ale șirului lui Catalan


1. Numărul de expresii care conțin 2*n paranteze care se închid corect este .
Exemplu: n=3 => ((())),()(()), ()()(),(())(),(()()).
2. Numărul de triangularizări ale unui poligon convex cu n vârfuri, adică împărțirea unui poligon în n
triunghiuri disjuncte , n ≥ 3.

3. Fie nℕşi numerele naturale x1,x2,...,xn {1,2,...,n}, astfel încât x1≤x2≤…≤xn. Câte
posibilităţi de alegere a acestor numere există astfel încât să fie îndeplinită condiţia: x1+x2+…+xn
0 (mod n)?
Pentru n = 1 , avem varianta 0. Pentru n = 2 , avem 00 şi 12. Pentru n = 3 avem 000,013,
022,112,233, iar pentru n = 4 obţinem 14 soluţii: 0000,0014,0023,0113,0122,0244,
0334,1112,1144,1234,1333,2224,2233,3444.
Se demonstrează că numărul de soluţii este
4. Numărul de arbori binari cu n noduri este
7
44
5. Numărul de drumuri laticiale dintre (0,0) și (n,n) cu pași de forma (1,0) și (0,1) care însă nu
 2014-2015
trec deasupra dreptei de ecuație y=x este
Exemplu: n = 4:
Hour of Code
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

The Magic Behind Google


http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Referințe bibliografice
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
http://en.wikipedia.org/wiki/Combinatorics
http://en.wikipedia.org/wiki/Binomial_coefficient
http://planetmath.org/pascalstriangle 2015-2016
http://en.wikipedia.org/wiki/Catalan_number

O ameliorare a timpului de execuție pentru algoritmul de


sortare MergeSort

Autor prof. Piț-Rada Ionel-Vasile


Colegiul Național "TRAIAN", Drobeta Turnu Severin

Algoritmul de sortare MergeSort este unul din algoritmii de sortare cu complexitate optimă. El este în
general prezentat ca un exemplu util de aplicare a metodei "Divide & Impera" și a algoritmului de
interclasare. Implementarea se face recursiv (varianta 0, de mai jos). În cele ce urmează am încercat să
implementez nerecursiv.
Dorim să sortăm elementele tabloului x[0],x[1],...,x[N-1]. Algoritmul se desfășoară pe parcursul a
log2(N) etape. La fiecare etapă vom parcurge secvențele de lungime 1≤d<N și le vom interclasa pe acelea
care sunt vecine obținând secvențe sortate de lungime 2d . Implementarea se poate face conform variantei 1
descrisă mai jos.
Analizând din alt punct de vedere , cu excepția algoritmului de sortare "BubbleSort", nici un algoritm
de sortare nu știe să evite efortul de sortare în cazul tablourilor care sunt sortate încă din etapa inițială. Se
poate vorbi de un fenomen de aplicare în "orb" a acestor algoritmi. Pentru soluția construită se poate face o
îmbunătățire în legătură cu acest fenomen de "orbire". Nu vom aplica interclasarea secvențelor sortate x[i...j-
1] și respectiv x[j...k-1] decât dacă x[j-1]>x[j] . Se obține varianta 2 de implementare care are un timp de
executare ameliorat față de celelalte două variante.
Am analizat comparativ timpii de executare pentru cele trei variante și am obținut diagrama de mai jos.
1 void interclasare(int x[], int p, int q, int r){
2 int n1,n2,i,j,k;
3 n1=q-p; n2=r-q+1;
4 for(i=0,k=p;k<q;i++,k++)v1[i]=x[k];
5 for(j=0,k=q;k<=r;j++,k++)v2[j]=x[k];
Clasic 6 v1[n1]=v2[n2-1]+1;
7 v2[n2]=v1[n1-1]+1;
8 for(i=0,j=0,k=p;k<=r;k++){
9 if(v1[i]<v2[j]) x[k]=v1[i++];
10 else x[k]=v2[j++];
11 }
12 }

88
44
 2014-2015
1 void mergesort0(int x[], int p, int r){
2 if(p<r){
3 int q=(p+r)/2;
Hour
Varianta 0 of4Code mergesort0(x,p,q);
-recursivă 5 mergesort0(x,q+1,r);
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
6 interclasare(x,p,q+1,r);
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
7 }
8 }
The Magic Behind
1 void Google x[], int p, int r){
mergesort1(int
int d,i,j,k;
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
2
3 for(d=1;d<n;d=d*2){
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
4 i=0;
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
5 while(i+d<n){
Varianta 1
Concurs 76„Lider European”
-nerecursivă
j=i+d; k=j+d;
if(k>n)k=n;
8 interclasare(x,i,j,k-1);
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
9 i=k;
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
10 }
11 }
12 }
 2015-2016
1 void mergesort2(int x[], int p, int r){
2 int d,i,j,k;
3 for(d=1;d<n;d=d*2){
4 i=0;
5 while(i+d<n){
6 j=i+d; k=j+d;
Varianta 2 7 if(k>n)k=n;
-nerecursivă 8 if(x[j-1]>x[j])
9 interclasare(x,i,j,k-1);
10 i=k;
11 }
12 }
13 }

18
16
14
12
10
Varianta 0
8
6 Varianta 1

4 Varianta 2

2
0
10.000.000
20.000.000
30.000.000
40.000.000
50.000.000
60.000.000
70.000.000
80.000.000
90.000.000

Propun cititorilor să ruleze cele trei implementări pentru tablouri gata sortate.

9
44
Algoritmul Al Kashi
 2014-2015
Calcularea lui nk în timp logaritmic
Hour of Code
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Prof. Carmen Negrea
The Magic Behind Google
1. Se citesc 2 numere naturale n si k. Sa se calculeze nk
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
O solutie ar fi sa calculam produsul P=n*n……*n ( n de k ori).
Amhttp://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
putea micsora numarul de operatii daca folosim relatia:
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457

Varianta 1. Varianta 2. Pe biţii exponentului k


1
2
#include <iostream>
using namespace std;
 2015-2016
1 #include <iostream>
2 using namespace std;
3 long long p=1,n; 3 long long p=1,n;
4 int k; 4 int main()
5 int main() 5 { int i,k;
6 { cin>>n>>k; 6 x=2; k=5;
7 while(k) 7 for(i=0;(1<<i)<=k;++i)
8 {if(k%2){p=p*n;} 8 {if ((1<<i)&k) p=p*n;
9 n=n*n; 9 n=n*n;
10 k=k/2; 10 }
11 } 11 cout<<p;
12 cout<<p; 12 return 0;
13 return 0; 13 }
14 }

2. Calculul al celui de-al n-lea termen a unei formule recursive în timp logaritmic.
Obs. explicaţia matematică aparţine dlui. prof. Mihai Bunget

Fie Xn+1=Xn+2Xn-1+5Xn-2 (unde X0,X1, X2 daţi)

=>

=> a=1, b=2, c=5


d=1, e=0, f=0
g=0,h=1,i=0

A= => =An.

Aplicaţie :
2ndesc Timp maxim de executie/test: 0.1 secunde
Memorie totală disponibilă/stivă: 2 MB/1 MB

10
44 10
Se dă un numar natural N.
Cerinţă  2014-2015
Se cere să se afle numărul total de moduri în care 2N se poate scrie ca produs de cifre strict mai mari decât 1.
Date de intrare
Fişierul deHour of Code
intrare 2ndesc.in va conţine o singură linie pe care este scris numărul natural N.
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
Date de ieşire
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Fişierul de ieşire 2ndesc.out va conţine o singură linie pe care se va scrie un număr natural, reprezentând
soluţia problemei. Deoarece numărul poate fi foarte mare, se cere să se afişeze modulo 666013.
Restricţii The Magic Behind Google
 1 <= N <= 1000000000 (109)
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
 Se acceptă şi produsul de o singură cifră (pentru N=2, se acceptă şi soluţia 4).
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
Exemplu
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
2ndesc.in 2ndesc.out Explicaţie 2ndesc.in 2ndesc.out
4 Concurs
7 „Lider
Pentru N=4 European”
avem următoarele soluţii: 1238 623122

http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
1. 2*2*2*2
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
2. 2*2*4
3. 2*4*2
4. 4*2*2
5. 2*8
6.
7.
8*2
4*4
 2015-2016

Soluţie
Dacă se generează primele valori 1,2,4,7,13,24…, se poate observa că un termen este dat de suma a 3 termeni
anteriori. Pentru o implementare clasică, se obţin maxim 30 depuncte.
Dacă se aplică observaţia de mai sus, se obţine punctaj maxim.

1 #include <fstream>
2 using namespace std;
3 ifstream f("2ndesc.in");
4 ofstream g("2ndesc.out");
5 long long a[4][4]={{0,0,0,0},{0,1,1,1},{0,1,0,0},{0,0,1,0}};
6 long long c[4][4]={{0,0,0,0},{0,1,1,1},{0,1,0,0},{0,0,1,0}};
7 //long x[4]={1,2,4};
8 long n;
9 void ProdusMatImpar(long long a[4][4],long long c[4][4] )
10 { int i,j,k;
11 long long b[4][4];
12 for(i=1;i<=3;++i)
13 for(j=1;j<=3;++j)
14 b[i][j]=c[i][j];
15
16 for(i=1;i<=3;++i)
17 for(j=1;j<=3;++j) c[i][j]=0;
18
19 for(i=1;i<=3;++i)
20 for(j=1;j<=3;++j)
21 for(k=1;k<=3;++k)
22 c[i][j]=(c[i][j]+a[i][k]%666013*b[k][j]%666013)%666013;
23 }
24 void ProdusMatA(long long a[4][4] )
25 { int i,j,k;
26 long long b[4][4];
27 for(i=1;i<=3;++i)
28 for(j=1;j<=3;++j)
29 b[i][j]=a[i][j];
30 for(i=1;i<=3;++i)
31 for(j=1;j<=3;++j) a[i][j]=0;

11
11
44
32
33 for(i=1;i<=3;++i)  2014-2015
34 for(j=1;j<=3;++j)
35 for(k=1;k<=3;++k)
36
37 }
Hour of Code
a[i][j]=(a[i][j]+ b[i][k]%666013*b[k][j]%666013)%666013;

38 http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
int main()
39 { int i,j;
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
40 f>>n;
41 while(n)
42 The Magic Behind Google
{ if(n%2){ ProdusMatImpar(a,c);}
43 http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
ProdusMatA(a);
44 n=n/2;
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
45 }
46
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
long fin=c[2][1];
47 g<<fin;
48 Concurs „Lider European”
f.close();
49 g.close();
50 http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
return 0; }
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Baze de numeraţie. Aplicaţii pe biţi
 2015-2016 Prof. Carmen Negrea

nr01 Timp maxim de executie/test: 0.1 secunde


Memorie totala disponibila/stiva:16 MB/1 MB

Fie n un numar natural scris in baza 10 si b o baza de numeratie.


Cerinta
Sa se scrie un program care afiseaza în baza 10 toate numerele mai mici sau egale cu n, care scrise în
baza b folosesc numai cifrele 0 si1.
Date de intrare
Fisierul de intrare nr01.in contine o singura linie pe care se afla doua numere naturale separate prin spatiu n
b (cu semnificatia din enunt).
Date de iesire
Fisierul de iesire nr01.out va contine toate numerele mai mici sau egale cu n scrise in baza 10, numere care
scrise in baza b folosesc numai cifrele 0 si 1, cate un numar pe o linie. Numerele vor fi scrise in ordine strict
crescatoare.
Restrictii
1 < n <= 100 000 000
2 <= b <= 256

Exemple
nr01.in nr01.out
64 4 0
1
4
5
16
17
20
21
64

Soluţie
Intern , numerele sunt reprezentate în baza 2.
Dacă luăm orice număr din sistemul de numeraţie zecimal , folosind reprezentarea lui internă şi facem o
conversie în baza cerută a biţilor din reprezentarea sa, obţinem rapid numerele cerute.
12
12
44
1 #include<fstream>
2 using namespace std;
 2014-2015
3 int main()
4 {
5 Hour of Code
ifstream f("nr01.in");
ofstream g("nr01.out");
6 http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
long n,v,p,i,val;
7 http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
8 // calculam valoarea numarului in baza b folosind reprezentarea interna a
numerelor naturale
9 The Magic Behind Google
int b,ok=1;
10 http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
f>>n>>b;
11 g<<0<<"\n"<<1<<"\n";
12 http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
// val: numere naturale 2,3,4.... de a caror reprezentare interna ne folosim
13 http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
val=2;
14 while(ok)
15 { Concurs „Lider European”
v=0;p=1; i=val;// facem conversia numărului
16 while(i)
17 http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
{ // verificam paritatea bitului
if(i&1) v=v+p;
18 europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
19 p=p*b;
20 i=i>>1; // modificam numarul- "taiem" ultimul bit
21 }
22 if (v<=n) {g<<v<<"\n";val++;}  2015-2016
23 else ok=0;
24 }
25
26 f.close();
27 g.close();
28 return 0;
29 }

III. Probleme de concurs


Ecluze
Autor: prof. Eugen Nodea
Problemă propusă la Tabăra de pregătire a lotului de național de informatică
Dr.Tr. Severin – 2015

Ecluza este o construcție hidrotehnică amenajată pe traseul unei căi navigabile, care asigură
trecerea navelor între două suprafețe de apă cu niveluri diferite. O ecluză se compune dintr-un bazin numit
„sas" sau „camera ecluzei", prevăzut la ambele capete cu porţi etanşe şi dintr-o instalaţie puternică de
pompare pentru umplerea sau golirea sasului până la nivelul dorit.
Specialiștii români au construit pe cursul navigabil al Dunării o succesiune de N ecluze numerotate
de la 1 la N, care asigură condiții optime de navigare în sezoanele secetoase. Astfel, dacă o navă se află la un
moment dat în ecluza i și nivelul apei din ecluză diferă de nivelul apei din ecluza i+1, pentru a-și continua
navigarea în condiții optime se face modificarea nivelului apei fie din ecluza i la nivelul ecluzei i+1, fie se face
modificarea nivelului apei din ecluza i+1 la nivelul ecluzei i.

De exemplu, dacă pentru un sector navigabil există 9 ecluze pentru care nivelul apei este următorul:
ecluză 1 2 3 4 5 6 7 8 9
nivel apă 2 2 4 1 2 2 1 2 2

Numărul minim de ecluze la care se impun modificări ale nivelului apei este 3, după cum urmează:
 nivelul din ecluza 3 este coborât până la nivelul 2
13
13
44
 ecluza 4 este umplută până la nivelul 2 2014-2015
 ecluza 7 este umplută până la nivelul 2
Cerinţă
Hournivelul
Cunoscând of Code
apei din cele N ecluze, să se determine numărul minim de modificări ale nivelului
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
apei din ecluze care să permită o trecere prin toate ecluzele.
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Date de intrare
The
Fişierul deMagic Behind
intrare ecluze.in Google
conține pe prima linie numărul natural N ce reprezintă numărul de
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
ecluze. Pe următoarea linie se află h1, h2,…, hN valori naturale separate prin câte un spațiu ce reprezintă
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
nivelul apei corespunzător fiecărei ecluze.
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
Date de ieșire
Concurs
Fişierul „Lider European”
de ieșire ecluze.out va conţine pe o singură linie un număr natural M ce reprezintă numărul
minim de modificări ale nivelului apei din ecluze care să permită o trecere prin toate ecluzele.
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Restricţii şi precizări
 2 ≤ N ≤ 100 000
 2015-2016
 1 ≤ hi ≤ 1 000 (hi – nivelul apei ecluzei i)
 pentru 20% din teste N ≤ 30

Exemplu
ecluze.in ecluze.out Explicaţii
9 6 - ecluza 1 este umplută până la nivelul 2
123321123 - ecluza 2 este umplută până la nivelul 3
- nivelul din ecluza 4 este coborât până la nivelul 2
- nivelul din ecluza 5 este coborât până la nivelul 1
- ecluza 7 este umplută până la nivelul 2
- ecluza 8 este umplută până la nivelul 3

Timp maxim de execuţie/test: 0.1 secunde


Memorie totală disponibilă: 128 MB
Dimensiune maximă a sursei: 10 KB

Descriere soluție
În ecluza ”i” putem ajunge:
- fie din ecluza anterioară + o modificare de nivel
- fie ajungem dintr-o ecluză cu același nivel prin modificarea tuturor nivelurilor ecluzelor aflate între
cele două ecluze
Dacă notăm:
nrMin[i] - numărul minim de modificări cu care putem ajunge în ecluza i
urm[i] - următoarea poziție a unei ecluze cu înălțimea egală cu h[i]
recurența se deduce ușor:
nrMin[i] = min(nrMin[i], nrMin[i-1] + 1);
nrMin[urm[i]] = min(nrMin[urm[i]], nrMin[i] + (urm[i] – i - 1));

Complexitate: O(n)

14
4414
Soluție
 2014-2015
1 # include <fstream>
2 # include <algorithm>
3 Hour of Code
# define NM 100005
4 http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
# define inf 999999999
5 using namespace std;
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
6
7 ifstream f("ecluze.in");
8 The Magic Behind Google
ofstream g("ecluze.out");
9 int i, j, n, m;
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
10 int Min[NM], last[NM], urm[NM], a[NM];
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
11 int main ()
12
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
{
13 f >> n;
14 Concurs „Lider European”
for (i=1; i<=n; ++i)
15 {
16
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
f >> a[i];
17 europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Min[i] = inf;
18 }
19
20 for (i=n; i>=1; --i)
21  2015-2016
if (last[a[i]] == 0) last[a[i]] = i;
22 else urm[i] = last[a[i]], last[a[i]] = i;
23 Min[1] = 0;
24 for (i=1; i<=n; ++i)
25 {
26 if (i>1) Min[i] = min(Min[i], Min[i-1] + 1);
27 if (urm[i]) Min[urm[i]] = min(Min[urm[i]], Min[i]+(urm[i]-i-1));
28 }
29 g << Min[n] << "\n";
30 return 0;
31 }

15
4415
 2014-2015în …
IV. Ocolul pãmântului
HourINFORMATICÃ
of Code - marca CNTV
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
Continuăm seria articolelor prin intermediul cărora să cunoașteți foști elevi, cu activitate în
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
afara țării sau având realizări de excepție cu impact internațional, absovenți ce pot fi modele și
exemple de The
urmatMagic Behindactuală,
pentru generația Google aspirantă la poziții de top în mari companii de IT sau
cercetare la nivel de vârf.
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
De la C.N.T.V. la Melbourne
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


Mălina Bărbieru (Rustoiu)– absolvent CNTV, 2003
Network Engineer, departamentul de Infrastructura IT - reţeaua de
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
comunicaţii din Australia
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Tânăr, bun cunoscător al limbii engleze, profesionist cu experienţă
în domeniul său de activitate, adaptabil schimbărilor şi provocărilor vieţii,
 2015-2016
acesta ar trebui să fie profilul romanului care vrea să emigreze în
Australia. Oz sau Aussie, aşa i se spune în limbaj colocvial, Australiei. Ca să
ajungi acolo, drumul e lung, dar oportunităţile sunt extraordinare.
În Australia am ales să emigrăm şi noi. Destinaţia a fost oarecum
simplu de ales - o ţară vorbitoare de limba engleza. Cea mai apropiată era
Marea Britanie, însă din păcate, ca să ajungi acolo îţi trebuia permis de
muncă. Au rămas Canada şi Australia (am exclus SUA din cauza vizei). In
Canada vremea a fost factorul care a contat cel mai mult in eliminarea ei şi
uite aşa a rămas Australia, mai exact Melbourne.
Melbourne este capitala statului Victoria, cel mai important
centru de afaceri, administrative şi cultural al statului. Acest oraş
sofisticat al Australiei emana prin fiecare por al său, pasiunea profundă a
celor care trăiesc aici pentru viata, familie, şi natură. Din 2002 se află în
top 3 în clasamentul celor mai bune oraşe în care merită să trăieşti, iar din 2011 se situează pe primul loc.
Calitatea vieţii din 140 de oraşe este evaluată de experţii companiei de analiză, Economist Intelligence
Unit după 30 de parametri, printre care se numără: siguranţa, serviciile de sănătate, stabilitatea socială,
educaţia, dezvoltarea infrastructurii, disponibilitatea de bunuri şi servicii, mediul şi diversitatea vieţii
culturale.
După alegerea destinaţiei primul pas in emigrare este echivalarea meseriei. Acest pas este decisive
întrucât Australia acceptă doar emigranţi care au anumite meserii. Aceste meserii sunt trecute pe o lista, SOL
(Skilled Occupation List).
Aici pot spune că am fost norocoasă. Am absolvit Colegiul Naţional Tudor Vladimirecu profilul
matematică-informatică. De mică am avut o înclinaţie pentru ştiinţele reale, simţind că ele îţi creează o
gândire algoritmică care te va ajuta foarte mult în viaţă. Profesorii din liceu m-au determinat şi încurajat să
continuu pe această cale şi am reuşit să obţin o diplomă de inginer în domeniul telecomunicaţiilor.
Engineers of Australia a fost autoritatea responsabilă pentru echivalarea studiilor. Îţi solicită pentru
recunoaşterea diplomei minim nota 6 la toate probele modulului general al testului IELTS (test de limba
engleză), diploma de inginer şi dovezi de la locul de muncă - în special de scrisori de recomandare. Îţi mai
trebuie o compunere, făcută de tine, în care descrii trei episoade din cariera ta din care să reiasă calităţile
tale de inginer. Evident, trebuie să te axezi pe tine, formulările fiind de genul "Eu am facut", "Eu m-am
gândit", "Eu am propus". Şi încă o compunere în care povesteşti cum te-ai ocupat tu de dezvoltarea carierei
tale: adică la ce seminarii sau conferinţe ai participat, eventual dacă ai anumite acreditări extra-inginereşti.
După echivalare începe munca la aplicaţia pentru obţinerea rezidenţei. Primul lucru care trebuie înţeles este
că sistemul de emigrare in Australia se schimbă în fiecare an la 1 iulie. Sigur, modificările pot fi mai complexe
sau doar de suprafată, in funcţie de nevoile Australiei.
Tot procesul in cazul nostru a durat un an, iar după primirea vizei în decembrie 2013, în august 2014
am aterizat in Melbourne după un zbor de 20 de ore. Deşi nu trăim de mult timp aici pot emite câteva
1616
44
constatări personale despre această ţară şi locuitorii ei. Cel mai mult m-a impresionat în Australia mixul de
 2014-2015
oameni, obiceiuri, culturi, religii, mâncăruri care îti oferă opţiuni la îndemână aproape în orice privintă.
Australienii sunt oameni foarte prietenoşi fără a fi agasanţi. Ştiu să te salute cu un zâmbet larg şi sunt extrem
de amabili. Se trezesc devreme şi se retrag la casele lor devreme. Sunt extrem de conştienţi de faptul că au
Hour
ales să trăiască ofcăCode
aici şi mediul înconjurător face parte din casa lor. Asta se vede în atitudinea generală faţă
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
de mediu, şi în numărul mare de parcuri.
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Când vine vorba de găsirea unui loc de muncă lucrurile se schimbă destul de mult şi agenţiile de
rectrutare sau firmele de angajare nu mai sunt aşa amabile cu candidaţii lor. Ca nou venit eşti limitat la stat
TheCV-uri
pe net şi depus Magic Behind
la fiecare job careGoogle
crezi că ţi s-ar potrivi. Şansele de a prinde un job din primele
depuneri de CV-uri sunt foarte mici şi de aceea poate fi considerată cea mai grea încercare prin care trebuie
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
să treacă un emigrant nou venit. Tăria morală nu trebuie să dispară pentru că o dată chemat la interviuri,
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
lucrurile încep să se aşeze. Pentru asta, cel mai bun sfat este să îţi faci CV-urile să semene cat mai mult cu
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
cerinţele jobului la care aplici. La mine a durat două luni etapa de selecţie a CV-urilor şi încă două săptămâni
cea de interviuri Primul interviu a fost cu echipa de HR. Ei caută mai mult să vadă dacă te potriveşti cu
Concurs
profilul companiei „Lider
şi al echipei. European”
Ulterior te recomandă pentru interviul tehnic unde ai ocazia să povesteşti ce
ai făcut la locul de muncă anterior, în ce proiecte ai fost implicat şi cum ai contribuit tu la succesul lor. Se
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
pune foarte mult accent şi pe întrebări de tip comportamental. Cum ai reacţionat în anumite situaţii şi ce ai
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
învăţat din ele. Le-a plăcut povestea mea si din decembrie lucrez la una dintre cele mai mari companii
petroliere din lume. Am aplicat pentru postul de Network Engineer şi fac parte din departamentul de
Infrastructură IT şi împreună cu echipa am grijă de reţeaua lor de comunicaţii din Australia.
 2015-2016
O data bifat şi locul de muncă nu rămâne decât să te bucuri de stilul de viaţă australian. Viaţa aici este
in mare, ca şi in oricare altă ţară. Te duci la muncă 8 ore pe zi 5 zile pe săptămână. În restul timpului, faci ce
vrei. Ai parte şi de aspect mai puţin plăcute, nici aici nu umblă câinii cu covrigi în coadă. Lucrurile sunt
departe de a fi perfecte în Australia, sunt şi părţi mai puţin plăcute ale acestei societăţi dar aceste
imperfecţiuni sunt prea puţin relevante dacă te gândeşti la lucrurile bune de aici. Noi am tânji după
normalitate, corectitudine, toleranţă şi decenţă iar aici le-am găsit din plin. Australia este frumoasă tocmai
prin diversitatea şi armonia inter-rasială, amestecul de etnii care traiesc în deplină înţelegere fiind
unul din lucrurile cele mai de preţ ale Australiei. Asta e şi lucrul care îmi place cel mai mult aici, faptul
că nu te simţi străin, că esti acceptat ca şi egalul celor care s-au născut în ţara asta.

De la C.N.T.V. la Oslo
Dragoș Tîrvescu – absolvent CNTV, 2004
IRMI Group, Norges Røde Kors, Oslo (Norvegia) - expert în strategie
energetică, masterat în economie internațională de la Norwegian
Business School, cu accent pe guvernanță corporativă și impactul
corporațiilor asupra mediului înconjurător

Trebuie să recunosc încă de la început că informatica, în


sensul de programare, nu s-a aflat niciodată printre materiile mele
preferate. Am studiat-o la profilul matematică-informatică din clasa
a III-a (QBasic la Școala Nr. 8) până în anul II la facultate (Facultatea
de Inginerie în Limbi Străine, UPB), de obicei cu plăcere. Am preferat
însă totdeauna matematica, iar mai apoi fizica, unde am obținut și ceva rezultate la concursuri școlare de tot
felul. Nu am continuat să le aprofundez însă pe niciuna dintre științele exacte, am renunțat la studiile de
licență la UPB după anul II.

Încă din clasa a V-a, în schimb, am fost fascinat de științele pământului, în special geografia. Astfel, am
descoperit cum funcționează lumea înconjurătoare și am devenit tot mai curios să înțeleg alte culturi și
civilizații. Lumea înconjurătoare a devenit “geografie” și am încercat, cu timpul, să o înțeleg tot mai bine, din
noi perspective. În clasa a VIII-a, am participat la Olimpiada Națională de Geografie și am fost selectat pentru
a participa la etapa internațională organizată de National Geographic în Vancouver, Canada. Practic, a fost
prima călătorie neimaginară în străinătate, în 2001, la 15 ani. Mi-a schimbat viața; atunci am instalat și
internet acasă pentru prima dată, am avut prima adresă de e-mail, primul telefon mobil, când nu existau
Google Maps, Street View, GPS, iar referatele pentru la școală se scriau de mână și se copiau din Arborele
17
17
44
Lumii, nu de pe Wikipedia. În prima zi de liceu, tocmai revenisem acasă de câteva săptămâni de la concursul
 2014-2015
din Canada. Bineînțeles, am participat la concursul național de geografie și în clasa a IX-a, obținând de data
aceasta premiul I, la Iași. Concursul internațional a avut loc în Africa de Sud, unde am călătorit împreună cu
dl profesor Zaharia, iar echipa României a câștigat detașat. În Durban, a început să se înfiripeze pentru prima
Hour of
dată, încă nelămurit, Code
calea pe care doream să o urmez în carieră: dezvoltare durabilă regională, combaterea
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
sărăciei și a poluării, prin capitalism responsabil (v. responsabilitate corporativă socială). Am înțeles, încă de
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
atunci, și faptul că urma să părăsesc România pentru a putea să urmez o carieră în domeniul care mă
pasiona.
The Magic
În prezent, locuiesc laBehind Google
Oslo, Norvegia, începând cu anul 2008. Am urmat cursurile de masterat aici, în
domeniul Marketingului și Managementului Internațional, cu o bursă obținută în timpul studiilor la
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
Academia de Studii Economice din București, Facultatea de Administrarea Afacerilor în Limbi Străine. Nu am
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
studiat geografia la facultate, deoarece perspectivele în domeniu, în România, nu erau tocmai “strălucite”.
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
Am încercat, în schimb, să abordez teme de dezvoltare durabilă, strategie corporativă și responsabilitate
socială în toate lucrările realizate pe parcursul anilor de studiu universitar. Anul trecut, am urmat câteva
Concurs „Lider European”
cursuri suplimentare la Oslo, în limba norvegiană, pentru a aprofunda înțelegerea acestui domeniu vast,
complex, și în permanentă schimbare. Domeniile de expertiză pe care le-am ales sunt energia și schimbările
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
climatice, și voi continua să urmez cu plăcere această cale.
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Trebuie să vă mărturisesc însă câteva lucruri pe care le-am înțeles cu timpul. În primul rând,
rezultatele obținute ca student și în domeniul consultanței de strategie se datorează în mare măsură
capacităților de analiză și de sinteză dezvoltate în anii de școală și de liceu. Indiferent de domeniul în care
 2015-2016
doriți să lucrați și de abordarea acestuia mai târziu, efortul depus în anii de liceu la matematică, fizică,
informatică și chimie vă va fi răsplătit însutit. În al doilea rând, singurul mod de a reuși pe termen lung în
viață, de a vă împlini visele, este prin muncă perseverentă, depășind așteptările celor din jur și pe ale
voastre. Contează cel puțin la fel de mult și altă experiență pe care o dobândiți încă din anii de liceu, în afară
de rezultatele școlare: voluntariat, antreprenoriat social sau de afaceri, activitate fizică, în general activități
în afara școlii.
În toată lumea, revoluția tehnologică din ultimele decenii a făcut ca școala – din clasa I până la
masterat, în sensul strict teoretic al cuvântului – să nu mai pregătească corespunzător tinerii pentru viață.
Modul în care se predă la școală, materia din manuale, așteptările profesorilor, amintesc de o lume
încremenită în trecut.Nu doar în România, pretutindeni! Fiecare trebuie să își ia viitorul în propriile mâini și
să își folosească timpul în mod chibzuit. Citiți pentru a înțelege, în loc de a memora și reproduce informații.
Lucrați în echipă, colaborați, prezentați rezultatele împreună. Dacă lucrările de control se axează pe
memorare, poate că o notă mică nu este “sfârșitul lumii”.Nu încălcați regulile copiind, dar insistați să fiți
evaluați și altfel decât individual. Căutați informații suplimentare pe internet, întrebați la școală și pe
forumuri. Nu la fiecare materie, în fiecare săptămână, bineînțeles, dar în orice caz la cele pe care vă
pasionează. Conceptul de “10 pelinie” la care aspira generația mea are doar parțial acoperire în rezultatele
pe care le veți obține mai târziu.
Nu mergeți la o facultate axată pe materii care nu vă pasionează. Este întru totul adevărat că lumea
are nevoie de ingineri și programatori, veți găsi oarecum ușor un loc de muncă bine plătit, oriunde în lume,
dacă urmați Politehnica. În România, este și unul din foarte puținele domenii care se plătește decent. Fiți însă
sinceri cu voi înșivă și urmați calea care vă pasionează, chiar dacă ar putea fi mai dificilă. Dacă singurele
motive pentru care ați urma Automatica sunt presiunea din clasă sau de acasă, respectiv perspectiva unui loc
de muncă bine plătit, gândiți-vă foarte bine la ceea ce faceți. Repet, singurul mod de a fi mulțumiți mai târziu
cu ceea ce faceți, pentru cel puțin 40 de ani, câte 40 de ore pe săptămână, este să faceți un lucru de care
sunteți pasionați. Uitați-vă la părinții și profesorii voștri, cei care își fac munca cu pasiune au rezultate mai
bune, sunt mai îndrăgiți de cei din jur și în general mai fericiți.
Competențele digitale nu sunt același lucru cu o carieră în informatică. Orice cale ați urma,
bineînțeles că trebuie să cunoașteți foarte bine (insist, foarte bine!) limba engleză, cel puțin încă o limbă
străină, și pachetul de programe Office. O alternativă la o carieră ca programator poate fi în design, editare
video și imagine, statistică sau analiza de “big data”. Posibilitățile sunt aproape infinite, și pentru toate aveți
nevoie de o bază solidă în științe reale, o înțelegere cel puțin de bază în programare, și de multă muncă,
făcută cu pasiune. Totul se schimbă acum într-un asemenea ritm, încât veți rezista doar învățând în
permanență ceva nou, pentru a deveni o versiune mai bună a voastră înșivă, exact ca noile versiuni de iOS,
Android etc. Ori nimeni nu poate să învețe în permanență altceva decât ceea ce îi pasionează.
V-am bătut suficient la cap. Lăsând totul la o parte, cred că lucrul cel mai important pe care l-am
învățat în Norvegia este bucuria de a trăi. Perseverența și munca serioasă nu presupun a te îngropa în
18
18
44
studiu. Ieșiți în natură, faceți sport, urmăriți serialele care vă pasionează, în orice caz creați-vă un
 2014-2015
program săptămânal care nu presupune doar școală. Cum spuneam, cel puțin la fel de importante sunt
experiențele extrașcolare. Mă bucur că se creează un grup de alumni la CNTV, astfel încât să aveți
posibilitatea să luați legătura cu absolvenții din anii anteriori. Majoritatea sunt sigur mai puțin pisălogi
Hour of Code
decât mine și cel puțin la fel de deschiși să răspundă întrebărilor pe care poate că le aveți în legătură cu calea
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
pe care doriți să o urmați. Pe curând!
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

The Magic Behind Google


V. Programatorul cel viteaz … 100 dintr-o loviturã !
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
Câţiva dintre elevii noştri, programatori pasionaţi, vă supun atenţiei câteva probleme date la
concursuri şi olimpiade şcolare, la care ei au obținut punctaj maxim în concurs, însoţite de scurte
comentarii,Concurs „LiderImplementare
sperăm lămuritoare. European” placută!
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Problema 2 - defrag Timp maxim de executare: 0,2 secunde/test
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Săvoiu Valentin, clasa a IX-a A Total memorie disponibilă: 4 MB
OJI 2015 Dimensiunea maximă a sursei: 10 KB
 2015-2016
Discul dur (hard disk) este un dispozitiv utilizat pentru stocarea datelor. Stocarea se face pe o
suprafață magnetică dispusă pe platane rotunde metalice. Pe un platan, datele sunt organizate în piste și
sectoare, iar zona aflată laintersecția dintre o pistă și un sector poartă denumirea de cluster.
Un cluster poate avea două stări: liber, dacă nu conține date, sau ocupat, atunci când conține date.
Un platan se numește defragmentat dacă toți clusterii ocupați de pe fiecare pistă sunt așezați în
ordine consecutivă. Defragmentarea se realizează prin mutarea unor clusteri ocupați și are rolul de a
micșora timpul de acces la date. Mutarea unui cluster reprezintă transferul datelor de la un cluster ocupat
către un cluster liber de pe aceeași pistă.

Cerință
Cunoscând numărul de piste P și de sectoare S al unui platan, numărul și poziția clusterilor ocupați, să
se scrie un program care determină :
1. numărul de piste care au toți clusterii liberi;
2. numărul minim de mutări de clusteri, pentru fiecare pistă în parte, astfel încât platanul să devină
defragmentat.
Date de intrare
Pe prima linie a fişierului de intrare defrag.in se găsește numărul natural Va cărui valoare poate fi doar 1
sau 2.
Pe a doua linie a fișierului de intrare se găsesc două numerenaturalePși S, separate printr-un spaţiu,
cu semnificaţia din enunţ.
A treia linie conţine un număr natural C reprezentând numărul total de clusteri ocupați de pe platan,
iar pe fiecare din următoarele C linii se găsește câte o pereche de valori pişi si, 1 ≤ i ≤ C, separate printr-un
spaţiu, reprezentând pista, respectiv sectorul unde se află fiecare cluster ocupat.
Date de ieşire
Fișierul de ieșire este defrag.out.
19
44 19
Dacă valoarea lui V este 1 atunci fişierul de ieşire va conţine pe prima linie un număr natural ce
 2014-2015
reprezintă numărul de piste care au toți clusterii liberi.
Dacă valoarea lui V este 2atunci fişierul de ieşire va conține pe prima linie P numere naturale notate
Mi, 1 ≤ i ≤ P, separate prin câte un singur spațiu, unde Mi reprezintă numărul minim de mutări de clusteri,
Hour
dintre cei aflați ofi,Code
pe pista astfel încât pe pista i clusterii ocupați să se găsească într-o ordine consecutivă.
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
Restricţii şi precizări
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
1 ≤ P ≤ 100
 1 ≤ S ≤ 360
 1 ≤ CThe ≤ P*S Magic Behind Google
pistele sunt numerotate de la 1 la P începând cu pista exterioară;
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
sectoarele sunt numerotate de la 1 la S în sensul acelor de ceasornic începând cu sectorul 1;
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
dacă o pistă are toți clusterii liberi, atunci valoarea cerută la a doua cerință este 0;
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
 20% din teste vor avea valoarea V = 1, iar 80% din teste vor avea valoarea V = 2
Concurs „Lider European”
Exemple:
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
defrag.in defrag.out Explicaţii
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
1 1 Datele corespund figurilor anterioare :
48 V = 1, deci se rezolvă NUMAI prima cerință.
10
11
 2015-2016
Numărul de piste P = 4 , numărul de sectoare S = 8
13 Numărul total de clusteri ocupați este C = 10 (cei marcați cu negru)
15 Pe prima pistă sunt 4 clusteri ocupați, în sectoarele 1, 3, 5 si 7.
17 Pe a doua pistă sunt 2 clusteri ocupați, în sectoarele 2 și 4.
45 Pe a treia pistă nu sunt clusteri ocupați.
41 Pe a patra pistă sunt 4 clusteri ocupați, în sectoarele 1, 5, 6 și 8.
46
48 O singură pistă are toți clusterii liberi, pista numărul 3, deci valoarea
22 cerută este 1;
24

defrag.in defrag.out Explicaţii


2 2101 Datele corespund figurilor anterioare :
48 V = 2, deci se rezolvă NUMAI a doua cerință.
10 Pe prima pistă sunt necesare minim două mutări de clusteri pentru ca toți
11 clusterii ocupați să se găsească într-o ordine consecutivă, deci valoarea
13 cerută este 2.
15
Pe a doua pistă este suficientă o singură mutare de cluster, pentru ca toți
17
clusterii ocupați să se găsească într-o ordine consecutivă, deci valoarea
45
cerută este 1.
41
46 Pe a treia pistă nu sunt clusteri ocupați, deci valoarea cerută este 0Pe a
48 patra pistă este suficientă o singură mutare de cluster, pentru ca toți
22 clusterii ocupați să se găsească într-o ordine consecutivă, deci valoarea
24 cerută este 1.

Sumarul algoritmului
Pentru a număra pistele libere, voi face un vector de apariție al pistelor citite, apoi voi contoriza elementele
nule, afișând contorul (vectorul ap[101]).
Pentru punctul b), voi folosi o matrice a[101][760]. Voi citi x, y și voi marca a[x][y] cu 1, iar pe
coloana 0 voi memora numărul de elemente al fiecarei linii. De asemenea, voi marca si a[x][y+s] cu 1,
dublând vectorul, pentru a putea „uni” cele doua capete.
Voi parcurge în structura repetitiva liniile matricei, voi salva în k numărul de elemente ale
liniei. Pentru a aranja cei k clusteri, trebuie ca pe k poziții consecutive să am k clusteri. Pentru a face
un număr minim de mutări, trebuie să găsesc un număr maxim de clusteri pe k poziții consecutive, apoi
2020
44
 2014-2015
trebuind făcute k-maxim mutari ; Pentru a calcula numărul de clusteri pe k poziții conseuctive voi folosi un
algoritm liniar, nu unul pătratic. Voi utiliza sume parțiale, a[i][j] reprezentând numărul clusterilor de pe linia
i, coloanele 1-j. Voi parcurge cu j de la k+1 până la 2*s-1 fiecare linie, calculând maxim ca fiind max(a[i][j]-
a[i][j-k]). VoiHour of Code
calcula apoi numărul de mutări și îl voi afișa.
Rezolvare
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
1 #include <iostream>
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
2 #include <fstream>
3 #include <cstdio>
4 The Magic Behind Google
using namespace std;
5 ifstream f("defrag.in");
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
6 ofstream g("defrag.out");
7 http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
int ap[101],a[101][761],test,p,s,nr,i,x,y,k,j,maxim;
8 int main()
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
9 {
10 Concurs „Lider European”
f>>test;
11 f>>p>>s;
12 f>>nr;
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
13 if(test==1)
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
14 {
15 for(i=1;i<=nr;i++) {f>>x>>y;
16 ap[x]=1;}
17 k=0;  2015-2016
18 for(i=1;i<=p;i++)
19 {
20 if(ap[i]==0) k++;
21 }
22 g<<k;
23 return 0;
24 }
25 for(i=1;i<=nr;i++)
26 {
27 f>>x>>y;
28 a[x][0]++;
29 a[x][y]=a[x][y+s]=1;
30 }
31 for(i=1;i<=p;i++)
32 {
33 k=a[i][0];
34 for(j=2;j<=2*s-1;j++) a[i][j]=a[i][j-1]+a[i][j];
35 maxim=0;
36 for(j=k+1;j<=2*s-1;j++) if(a[i][j]-a[i][j-k]>maxim) maxim=a[i][j]-a[i][j-k];
37 g<<k-maxim<<' ';
38 }
39 return 0;
40 }

Problema 1 - arc Timp execuţie pe test: 0.2 sec


Știucă Roxana - clasa a IX-a B Limită de memorie: 4096 kbytes
OJI 2015
Irinuca a descoperit un nou joc pe calculator. Pe ecran sunt plasate pe o linie n bile colorate. Culorile bilelor
sunt codificate cu numere naturale. Un subșir de bile alăturate având toate aceeași culoare se numește
secvență. O secvență va conține numărul maxim de bile alăturate având aceeași culoare. Lungimea unei
secvențe este egală cu numărul de bile din care este compusă.
Irinuca are la dispoziție un arc special. Trăgând cu arcul asupra unei bile, dacă aceasta face parte dintr-o
secvență de lungime cel puțin egală cu 3, întreaga secvență va fi eliminată, iar bilele din dreapta secvenței se
vor deplasa spre stânga pentru a umple “golul” lăsat de bilele eliminate. Dacă imediat în stânga și în dreapta
secvenței eliminate se găseau două secvențe având aceeași culoare și dacă secvența obținută din unirea
acestora după eliminare are o lungime cel puțin egală cu 3,atunci va fi și ea eliminată la rândul ei. Procesul
continuă până când secvențele din stânga și dreapta unei secvențe tocmai eliminate au culori diferite sau
21
44 21
 2014-2015
până când lungimea secvenței obținute prin alăturare este mai mică decât 3 sau până când în stânga ori în
dreapta unei secvențe eliminate nu se mai găsesc bile sau până sunt eliminate toate bilele de pe ecran.
Scopul jocului este de a elimina cât mai multe bile de pe ecran. Cum Irinuca încă nu se pricepe prea bine la
Hour of Code
acest joc și-a stabilit o strategie. Va trage cu arcul întotdeauna asupra unei bile ce face parte din secvența de
lungime maximă de pe ecran. Dacă sunt mai multe astfel de secvențe, ea va alege cea mai din stânga secvență
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
de lungime maximă. Dacă toate secvențele de pe ecran au lungimi mai mici decât 3, Irinuca nu va mai putea
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
elimina nici una din ele și jocul se încheie.

The
De exemplu, dacăMagic Behind
șirul inițial Google
de bile este:
13322223115644447
5http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
Irinuca va acționa asupra unei bile de culoare 2. Prin eliminare se obține șirul de bile
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
1333115644447
5http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
din care se elimină și secvența de bile de culoare 3 obținându-se șirul de bile
5 1 1 1 5Concurs
6 4 4 4 4 7 „Lider European”
din care se elimină și secvența de culoare 1.
5644447
5http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Cum secvența de bile de culoare 5 nu este suficient de lungă, aceasta nu se mai elimină. Acum Irinuca trage
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
asupra unei bile de culoare 4 și obține
5567
 2015-2016
dar cum în stânga și în dreapta secvenței eliminate sunt secvențe de culori diferite, nu se va mai elimina nici
o secvență. Jocul se încheie deoarece nu mai există nici o secvență de lungime cel puțin 3 asupra căreia să se
poată trage.
Cerinţă
Cunoscând numărul de bile și culorile fiecărei bile de pe ecranse cere să se determine:
1. numărul de secvențe de bile care se aflau inițial pe ecran;
2. numărul de bile care rămân neeliminate de pe ecran și culorile bilelor rămase în ordine pe ecran la
finalul jocului.
Date de intrare
Fişierul de intrare arc.in conţine pe prima linie un număr natural V. Pentru toate testele de intrare, numărul
V poate avea doar valoarea 1 sau 2.
A doua linie conține un număr natural n reprezentând numărul de bile, iar a treia linie conține n numere
naturale c1, c2, ..., cn separate prin câte un spațiu, reprezentând culorile celor n bile de pe ecran.
Date de ieşire
Dacă valoarea lui V este 1, se va rezolva numai punctul 1 din cerință.
În acest caz, în fişierul de ieşire arc.out se va scrie un singur număr natural n1, reprezentând numărul de
secvențe de bile aflate inițial pe ecran.
Dacă valoarea lui V este 2, se va rezolva numai punctul 2 din cerință.
În acest caz, în fişierul de ieşire arc.out se va scrie pe prima linie un singur număr natural n2, reprezentând
numărul de bile care rămân neeliminate de pe ecran la finalul jocului, iar pe următoarele n2 linii se va scrie
câte un număr natural reprezentând în ordine culorile bilelor rămase neeliminate la finalul jocului.
Dacă la finalul jocului nu mai rămâne nici o bilă neeliminată, fișierul de ieșire va conține pe prima sa
linie valoarea 0.
Restricţii şi precizări
 1 ≤ n ≤ 10000
 1 ≤ c1, c2,…, cn ≤ 100000
 Pentru rezolvarea corectă a primei cerinţe se acordă 20 de puncte, iar pentru cerința a doua se acordă 80 de
puncte.
Rezolvare
1 #include <fstream>
2 using namespace std;
3 int a[10000],n,i,v,nr,pozmax,secvmax,j;
4 ofstream g("arc.out");
5 int main()
6 {
7
8 freopen("arc.in","r",stdin);
9 scanf("%d %d",&v,&n);
2222
44
if(v==1)
10
11 {
 2014-2015
12 nr=1;
13 scanf("%d",&a[0]);
14 Hour of Code
for(i=1;i<n;i++)
15 {
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
16 scanf("%d",&a[i]);
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
17 if(a[i]!=a[i-1])
18 nr++;
19 The Magic Behind Google
}
20 g<<nr<<'\n';
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
21 }
22 http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
else
23 http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
{
24 secvmax=0;
25 Concurs „Lider European”
nr=1;
26 scanf("%d",&a[0]);
27 for(i=1;i<n;i++)
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
28 {
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
29 scanf("%d",&a[i]);
30 if(a[i]==a[i-1])
31 {nr++;
32 if(nr>secvmax)  2015-2016
33 {secvmax=nr;
34 pozmax=i;}
35 }
36 else
37 nr=1;
38 }
39 while(secvmax>2)
40 {
41 for(i=pozmax-secvmax+1;i<n-secvmax;i++)
42 a[i]=a[i+secvmax];
43 n-=secvmax;
44 nr=1;
45
46 j=pozmax-secvmax+1;
47 if(j!=0&&a[j-1]==a[j])
48 { while(a[j-1]==a[j]&&j!=0)
49 {
50 j--;
51 nr++;
52 }
53 j=pozmax-secvmax+1;
54 while(a[j+1]==a[j]&&j!=n-1)
55 {
56 j++;
57 nr++;
58 }
59 }
60 if(nr>2)
61 {
62 secvmax=nr;
63 pozmax=j;
64 }
65 else
66 {
67 secvmax=0;
68 nr=1;
69 for(i=1;i<n;i++)
70 {
71 if(a[i]==a[i-1])
72 {nr++;
73 if(nr>secvmax)
23
23
44
74 {secvmax=nr;
75  2014-2015
pozmax=i;}
76 }
77 else
78 Hour of Code nr=1;
79 }
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
80 }
81 http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
}
82 g<<n<<'\n';
83
84
The Magic Behind Google
for(i=0;i<n;i++)
g<<a[i]<<'\n';
85 http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
}
86 return 0;
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
87 }
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Explicații Concurs „Lider European”


 Avem vectorul a cu elementele de la 0 la n-1.
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
 Pentru punctul a), citim vectorul și în același timp numărăm de câte ori două elemente alăturate au
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
valori diferite.
 Pentru punctul b):
o Vom avea la fiecare etapă a jocului numărul de elemente din secvența maximă (secvmax) si
 2015-2016
poziția ultimului element din această secvență (pozmax).
o Pentru a afla pozmax si secvmax, parcurgem vectorul și prin variabila nr notăm numărul
elementelor din secvența curentă. Dacă a[i] diferă de a[i-1], atunci nr devine 1, singurul
element din secvență fiind a[i].
o Jocul se repeată până când secvmax este mai mică decât 3.
o De asemenea, dacă după ștergerea din vector a unei secvențe (spargerea bilelor), elementele
de dinainte șidupă această secvență au valori egale și pot forma o secvență de minim 3
elemente atunci secvența formată de acestea e considerată secvmax și pozmax este ultimul
element din aceasta.

Dragoni Timp maxim de execuție/test: 0.5 secunde.


Margeloiu Andrei, clasa a XI-a A Memorie totală disponibilă/stivă: 8MB/1MB
OJI 2015, clasa XI-XII Dimesiunea maximă a sursei: 10 KB
Supăraţi că lansarea părţii a treia a filmului lor preferat s-a amânat până în iunie 2018, Henry şi Hetty s-
au gândit la propriul scenariu pentru finalul trilogiei:
Într-o lume în care vikingii pot zbura cu dragonii există N insule. Hiccup, şeful tribului de vikingi aflat pe
insula 1, ştie M rute directe de zbor bidirecţionale între insule. Pentru fiecare j intre 1 si M, ruta j uneşte
insulele Aj şi Bj şi are lungime Dj.
Pe fiecare insulă i,(1 ≤ i ≤ n) există dragoni din specia i care pot zbura fără a se opri pentru odihnă o
distanţă maximă Dmaxi. Cu alte cuvinte, dragonii de pe insula i vor putea parcurge orice rută j,(1 ≤ j ≤ m)
pentru care Dj ≤ Dmaxi, indiferent de ce alte drumuri au făcut anterior.
Hiccup doreşte să ajungă de pe insula 1 pe insula N pentru a-l salva pe Toothless, dragonul lui. Pentru a
ajunge acolo, el va lua iniţial un dragon din specia 1 (de pe insula 1). Apoi, dacă la un moment dat Hiccup
se află pe o insula i,(1 ≤ i ≤ n) având cu el un dragon din specia t, el poate:
1. Să zboare de pe insula i pe o altă insulă x cu dragonul pe care îl are, folosind o rută directă j între
insulele i si x, bineînţeles doar dacă Dj ≤ Dmaxt .
2. Să schimbe dragonul din specia t pe care îl are cu un dragon din specia i aflat pe insula respectivă.

a) Se face DFS, ținându-se seama să nu se treacă peste muchiile care au costul mai mare ca distanța
maximă pe care o poatezburadragonul 1.
b) Vom merge pe ideea programării dinamicepe stări exponențiale. Așadar vom avea matricea:
24
24
44
A[i][j]- numărul minim de pași pentru a ajungepe insula -i- venind cu dragonul –j-
 2014-2015
Initial matricea este inițializată cu infinit, iar A[1][1]=0 (pentru că începem de pe insula 1 cu
dragonul 1)
Se observă cu ușurință că de pe insula actuală putem pleca pe insulele vecine fie pe dragonul actual,
Hour of Code
fie pe dragonul specific acelei insule.
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
Rezolvare
1 http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
# include <cstdio>
2 # include <algorithm>
3
4
The Magic Behind Google
# include <vector>
# include <queue>
5 http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
# define NR 805
6 http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
# define inf 999999999
7 using namespace std;
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
8 structelem
9
10
{
Concurs „Lider European”
int insula, dragon;
11 }F;
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
12 structvect
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
13 {
14 int y, cost;
15 }E;
16
17
vector<vect>v[NR];
queue<elem>q;
 2015-2016
18 int i,j,n,m,x,y,maxx,tip;
19 int minn[NR][NR], dmax[NR], ap[NR], uz[NR][NR];
20 void init ()
21 {
22 for (inti=1; i<=n; ++i)
23 for (int j=1; j<=n; ++j)
24 minn[i][j]=inf;
25 }
26 void citire ()
27 {
28 freopen ("dragoni.in", "r", stdin);
29 scanf ("%d%d%d", &tip, &n, &m);
30 for (i=1; i<=n; ++i)
31 scanf ("%d", &dmax[i]);
32 for (i=1; i<=m; ++i)
33 {
34 scanf ("%d%d%d", &x, &y, &E.cost);
35 E.y=y;
36 v[x].push_back(E);
37
38 E.y=x;
39 v[y].push_back(E);
40 }
41 }
42 void DFS (int k)
43 {
44 ap[k]=1; maxx=max(maxx, dmax[k]);
45 for (inti=0; i<v[k].size(); ++i)
46 if (v[k][i].cost<=dmax[1] && !ap[v[k][i].y]) DFS (v[k][i].y);
47 }
48 voiddinamica ()
49 {
50 intnextnod, cost, nod, D;
51 while (! q.empty())
52 {
53 F=q.front(); q.pop();
54 nod=F.insula; D=F.dragon;
55 uz[nod][D]=0;
56 for (inti=0; i<v[nod].size(); ++i)
57 {
25
4425
58 nextnod=v[nod][i].y; cost=v[nod][i].cost;
59  2014-2015
if (dmax[D]>=cost &&minn[nod][D] + cost<minn[nextnod][D])
60 {
61 minn[nextnod][D] = minn[nod][D] + cost;
62 Hour of Code
F.insula=nextnod; F.dragon=D;
63 if (! uz[nextnod][D])
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
64 {
65 http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
q.push(F);
66 uz[nextnod][D]=1;
67
68
The Magic Behind Google
}
}

69 http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
}
70 for (inti=0; i<v[nod].size(); ++i)
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
71 {
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
72 nextnod=v[nod][i].y; cost=v[nod][i].cost;
if (dmax[nod]>=cost &&minn[nod][D] + cost<minn[nextnod][nod])
73
74
Concurs „Lider European”
{
75 minn[nextnod][nod] = minn[nod][D] + cost;
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
76 F.insula=nextnod; F.dragon=nod;
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
77 if (! uz[nextnod][nod])
78 {
79 q.push(F);
80
81
uz[nextnod][nod]=1;
}
 2015-2016
82 }
83 }
84 }
85 }
86 int main ()
87 {
88 freopen ("dragoni.out", "w", stdout);
89 citire (); //citimdatele
90 init (); // minn[i][j] - drumul minim de la insula 1
91 // pana la insula isiajungandpedragonul j
92 if (tip==1)
93 {
94 maxx=0;
95 DFS (1); // parcurgem in adancime
96 printf ("%d\n", maxx);
97 }
98 else {
99 F.insula=1; F.dragon=1; minn[1][1]=0;
100 q.push(F);
101 dinamica (); // dintr-o insula, putemajungeintr-o insula vecina
102 // fie pedragonulcurent, fie pedragonul de pe
103 // insula respectiva
104 intsolutie=inf;
105 for (i=1; i<=n; ++i)
106 {
107 solutie=min(solutie, minn[n][i]);
108 }
109 printf ("%d\n", solutie);
110 }
111 return 0;
112 }

Problema 1 – Copaci Timp maxim de execuţie/test: 0.5 secunde


Popescu George – clasa a XI-a A Memorie totala disponibilă/stivă: 8 MB/1 MB
Info Oltenia 2015
In Hackerville exista un parc special. Acest parc are N copaci uniți prin N-1 poteci. O poteca unește doi
copaci. Mulți batrâni s-au plâns conducerii orașului că parcul este prea întunecat, iar conducerea a hotarât să
ia măsuri. Hackerville fiind condus de un geniu al programării, acesta a decis să taie k copaci, dar nu la
26
26
44
 2014-2015
întâmplare. El vrea să taie k copaci astfel incât drumul total parcurs de un muncitor pentru tăierea lor să fie
minim. Deoarece conducătorul orașului este plecat la o conferință importantă, el vă roagă pe voi să îl ajutați.
Copacii sunt numerotați de la 1 la N.
Cerintă
Hour of Code
Cerința pe care conducătorul orașului v-a dat-o este să aflați numărul minim de poteci pe care trebuie săle
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
parcurgă un muncitor pentru a tăia k copaci.
Datehttp://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
de intrare
Fișierul de intrare copaci.in va conține:
Thelinie
-pe prima Magic Behind
două numere Google
N si M reprezentând numărul de copaci din parc, respectiv numărul de
interogări.
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
-pe următoarele N-1 linii vor fi câte două numere, x și y reprezentând numerele a doi copaci care
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
sunt http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
uniți de o potecă.
-pe următoarele M linii va fi câte un număr natural ki reprezentând numărul de copaci pe care
conducătorulConcurs
orașului vrea„Lider
sa îi taie. European”
Date de iesire
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Fișierul de iesire copaci.out va conține pe primele M linii câte un număr reprezentând costul minim
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
pentru a tăia cei ki copaci.
Restricții și precizări
1<=N, M<=100.000
1<=ki<=N
Pentru 40% din teste 1<=N<=1.000
 2015-2016
Exemplu
copaci.in copaci.out Explicație
42 1 Sunt 4 copaci in parc. Avem 2 interogari. Pentru k=2 muncitorul
32 4 parcurge traseul: 1->2, astfel el a taiat 2 copaci facând 1 drum.
12 Pentru k=4 muncitorul parcurge traseul: 4->2->3->2->1, astfel el a taiat
42 4 copaci facând 4 drumuri.
2
4

Rezolvare
1 //Solutie Popescu George O(n+m) - BFS diametru maxim in arbore
2
3 #include <cstdio>
4 #include <queue>
5 #include <cstring>
6 #include <vector>
7 #define NMAX 100005
8 #define INF 200005
10 using namespace std;
11 int n,m,i,x,y,Max,poz,k;
12 int viz[NMAX],d[NMAX];
13 vector<int>v[NMAX];
14 queue<int>q;
15 void citire()
16 {
17 freopen("copaci.in", "r", stdin);
18 scanf("%d%d",&n,&m);
19 for(int i = 1; i < n; ++i)
20 {
21 scanf("%d%d",&x,&y);
22 v[x].push_back(y);
23 v[y].push_back(x);
24 }
25 }
26 //caut cel mai indepartat punct
27 void BFS1()
28 {
2727 44
for(int i = 1; i <= n; ++i) viz[i]=INF;
29
30 viz[1]=1;
 2014-2015
31 q.push(1);
32 while(!q.empty())
33 {Hour of Code
34 int x = q.front();
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
35 q.pop();
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
36 for(int i = 0; i < v[x].size(); ++i)
37 {
38 The Magic Behind Google
if(viz[x] + 1 < viz[v[x][i]])
39 {
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
40 viz[v[x][i]] = viz[x] + 1;
41
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
if(viz[v[x][i]]> Max) Max=viz[v[x][i]],poz=v[x][i];
42 http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
q.push(v[x][i]);
43 }
44 Concurs „Lider European”
}
45 }
46 http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
}
47 europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
//vad diametrul arborelui
48 void BFS2()
49 {
50 for(int i = 1; i <= n; ++i) viz[i]=INF;
51 viz[poz]=1;  2015-2016
52
53 q.push(poz);
54 Max=0;
55 while(!q.empty())
56 {
57 int x=q.front();
58 q.pop();
59 for(int i = 0; i < v[x].size(); ++i)
60 {
61 if(viz[x] + 1 < viz[v[x][i]])
62 {
63 viz[v[x][i]] = viz[x] + 1;
64 if(viz[v[x][i]]> Max) Max=viz[v[x][i]];
65 q.push(v[x][i]);
66 }
67 }
68 }
69 }
70 void afis()
71 {
72 freopen("copaci.out", "w", stdout);
73 //nodurile care sunt pe diametru vor avea costul de eliminare k-1
74 //nodurile care nu apartin diametrului vor avea costul anterior +2
75 // (se parcurge muchia din afara lantului de doua ori)
76 for(int i = 1; i <= Max; ++i) d[i]=i-1;
77 for(int i = Max+1; i <= n; ++i) d[i]=d[i-1]+2;
78 for(int i = 1; i <= m; ++i)
79 {
80 scanf("%d",&k);
81 printf("%d\n",d[k]);
82 }
83 }
84 int main()
85 {
86 citire();
87 BFS1();
88 BFS2();
89 afis();
90 return 0;
91 }
28
44
28
Rezultate olimpiade și concursuri naționale
 2014-2015
2014-2015
Hour ofRezultate
Code Olimpiada Națională de Informatică 2015
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Nr. crt. Nume Prenume Clasa Prof indrumator Premiul / Medalie
1 MĂRGELOIU ANDREI 11 NODEA EUGEN Premiul II, Medalie aur
2
The Magic Behind Google
COMĂNECI ANDREI 12 NODEA EUGEN Medalie argint
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
3 CERNĂIANU MIHAI 10 POPESCU SANDA Medalie argint
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
4 ȘTIUCĂ ROXANA 9 DABELEA OANA Medalie bronz
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
5 SĂVOIU VALENTIN 9 POPESCU SANDA Medalie bronz
6
Concurs
POPESCU
„Lider European”
OCTAVIAN 10 POPESCU SANDA Diplomă participare
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
7 POPESCU GEORGE AURELIAN 11 NODEA EUGEN Diplomă participare
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
8 DABELEA IOANA VIVIANA 6 POPESCU SANDA/DABELEA OANA Diplomă participare
9 BUNGET ANDREEA 6 POPESCU SANDA/BUNGET MIHAI Diplomă participare
 2015-2016
Rezultate Olimpiada județeană 2015
Clasa a IX-a
Nr. crt. Nume Prenume Prof indrumator Premiul
1 ȘTIUCĂ ROXANA DABELEA OANA Premiul I
2 SĂVOIU VALENTIN POPESCU SANDA Premiul II
3 CIUREA GABRIEL DABELEA OANA Premiul III
4 TIRIPLICĂ VLAD POPESCU SANDA Mențiune

Clasa a X-a
Nr. crt. Nume Prenume Prof indrumator Premiul
1 POPESCU OCTAVIAN POPESCU SANDA Premiul I
2 CERNĂIANU MIHAI POPESCU SANDA Premiul II
Clasa a XI-a
Nr. crt. Nume Prenume Prof indrumator Premiul
1 MĂRGELOIU ANDREI NODEA EUGEN Premiul I
2 POPESCU GEORGE AURELIAN NODEA EUGEN Premiul III
3 CIOFU ŞERBAN NODEA EUGEN Mențiune
4 TOMA ALEXANDRU NODEA GABRIELA Mențiune
Clasa a XII-a
Nr. crt. Nume Prenume Prof indrumator Premiul
1 COMĂNECI ANDREI NODEA EUGEN Premiul II
2 POGONARU MIHAI GOGA ELENA Premiul III
Clasa a VI-a
Nr. crt. Nume Prenume Prof indrumator Premiul
1 DABELEA IOANA VIVIANA Popescu Sanda, Dabelea Oana Premiul I
2 BUNGET ANDREEA MARIA Popescu Sanda, Bunget Mihai Premiul II

29
29
44
 2014-2015
Olimpiada de Tehnologia Informației - faza națională 2015
Nr. crt. Nume Prenume Clasa Prof indrumator Premiul
Hour1 of Code
ENCESCU THEODOR-MIHAI X - TIC POPESCU SANDA Medalie bronz
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Olimpiada de Tehnologia Informației - faza județeană 2015
The Magic
Nr. crt. Behind
Nume Google
Prenume Clasa Prof indrumator Premiul
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
1 DAMINESCU MIHAI ADRIAN IX -TIC DABELEA OANA Premiul III
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
2 ENCESCU THEODOR-MIHAI X - TIC POPESCU SANDA Premiul I
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
3 MÎNDRUȚ RALUCA XII – C# GOGA ELENA Premiul II
Concurs
4 „Lider
VINTILĂ European”
ROBERT FLORIN X – C# POPESCU SANDA Premiul III

http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Concursul interjudețean Info-Oltenia 2015 (Râmnicu Vâlcea)
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Nr. crt. Nume elev Clasa Prof indrumator Premiul
1 Popescu George Aurelian a XI-a Nodea Eugen Premiul I, individual
2  2015-2016
Popescu George Aurelian a XI-a Nodea Eugen Premiul II, echipaj
3 Comăneci Andrei a XII-a Nodea Eugen Premiul II, echipaj
4 Mărgeloiu Andrei a XI-a Nodea Eugen Mențiune, individual
5 Știucă Roxana a IX-a Dabelea Oana Mențiune, individual
6 Simionescu Ana a IX-a Dabelea Oana Mențiune, individual
7 Știucă Roxana a IX-a Dabelea Oana Mențiune, echipaj
8 Popescu Octavian a X-a Popescu Sanda Mențiune, echipaj

http://olimpiada.info/
http://oni2015.isj-db.ro/
http://onigim2015.cngmm.ro/
http://ciaro.ro/oti/anc/index.php

30
44 30
 2014-2015
VI. Gânduri, pasiuni, experienţe …
Hour of Code
Despre cum am scris Software, cu Litere
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

The Magic Behind Google Alexandra Roată – absolvent CNTV, 2007


http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/ Managing Partner at Softlead
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
În anul 2007, la finalul clasei a XII-a, după 4 ani petrecuți la
Concurs „Lider
profilul Matematică-Informatică European”
intensiv, credeam că singurele litere
pe care le voi scrie vor fi cele din corpul logo-urilor sau al mesajelor
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
așa cum “promitea” Facultatea cu același nume. Wrong.
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
publicitare,
Sau Never say never, cum ar spune majoritatea.
Am finalizat studiile Facultății de Litere, specializarea
 2015-2016
Comunicare și Relații Publice, cu gândul la acele alăturări de consoane
și de vocale, care nu formează cuvinte în limba română, dar sunt
cunoscute sub numele de diagrame de sintaxă pentru programatori
sau testeri. Am ajuns să îndrăgesc un domeniu în care creativitatea
face loc logicii și algoritmilor, în care viziunea și anticiparea sunt cele
mai interesante pariuri cu fiecare consumator final.
…Cum?
Provocarea de a aduce la facultate o adeverință de practică s-a transformat, în doar câteva săptămâni,
în primul pas către lumea antreprenorială și, implicit, către oameni frumoși, vizionari, permanent înconjurați
de idei inovatoare și de propuneri de colaborare. Este vorba despre o industrie care nu obosește niciodată și
care, prin pasiune și determinare, uită (zi de zi) că programul de lucru este unul fix. Mai mult decât atât, să
lucrezi până târziu în noapte, să participi la evenimente, să construiești o rețea de socializare devin activități
constante, departe de care nu ai cum să stai. Pentru că știi că pierzi, de fiecare dată, un start.
Așa am ajuns direct…în domeniul IT. Rapid și fără vreo cale de întoarcere. După 7 ani, sunt tot aici.
Aceeași industrie dinamică, mult mai mulți oameni pasionați până la extrem de linii de cod, aplicații
software, dar și idei inovatoare, spirit de echipă, implicare maximă. Sunt oamenii care zâmbesc prin
emoticoane, al căror prieten fidel este cafeaua băută în fața monitoarelor wide full HD, dar despre care scriu
Wall-Street, TechCrunch sau Financial Times, aceia care sunt mai respectați în Silicon Valley decât în propriul
oraș.
Nu departe de toate acestea, în mod sigur, perioada liceului a avut un rol esențial în formarea viziunii
pe termen lung și a acceptării unei direcții noi, a capacității de a deveni flexibil și de anula mediul confortabil
pe care îl construiește lumea deja cunoscută.
Ce am învățat din experiența celor 4 ani de liceu?
Dinamica socială, tranziția facilă dintr-un domeniu în altul sunt aspecte care se pot învăța încă de pe
băncile școlii, prin implicare constantă și prin orientarea către zonele care prezintă potențial. De asemenea,
relaționarea cu profesioniștii din domeniile vizate pentru o carieră viitoare și cunoașterea industriei și a
oportunităților de lucru sunt factori esențiali în cea mai importantă decizie a vârstei de 18 ani.

31
44
31
C.N.T.V. la competiţia studenţească
 2014-2015de robotică de la Craiova
Prof. Gabriela Nodea
Hour of Code
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

The Magic Behind Google


http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Facultatea de Automatică, Calculatoare și Electronică din cadrul Universității din
Craiova și S.M.C. Romania S.R.L au organizat a doua ediţie a Competiţiei naţionale „Să cunoaștem
Mecatronica și Robotica”, adresată studenților din învăţământul superior din România dar deschisă și
elevilor.  2015-2016
Anul acesta la competiția de știintă și tehnică, desfășurată pe 25 și 26 mai, s-au înscris universități
din București, Sibiu, Cluj, Galați, Reșita, Petroșani, Pitești, Târgu Jiu și Craiova.
În premieră, echipajul Universității din Târgu Jiu, coordonat de prof. Ilie Borcoși şi prof. Marian
Ionescu, a fost format din trei studenți Roșu Mureșan Alexandru, Cercelaru Mihaela,Tobă Cătălin și un elev,
Alexandru Toma – clasa a XI-a C la Colegiul ”Național Tudor Vladimirescu”.
Unul din cele două echipaje din Târgu Jiu, celcare a participat la secțiunea de roboți mobili a
concursului, a ocupat surpinzător și fericit locul I cu ”cel mai rapid robot”, cu toate că au participat echipaje
de la 9 facultăți de profil cu renume din țară. Echipajul a trebuit să realizeze (asambleze) un robot și să-l
programeze în limbajul C, robotul construit fiind autonom (funcționează pe baterii atât partea electronică cât
si cea mecanică), dotat cu senzori infraroșu cu ajutorul cărora „se ghidează”.
Tinerii au reușit să se claseze admirabil după pregătiri care au durat aproximativ o lună și trecând
peste emoțiile provocate de ”arderea” primului robot cu care ar fi trebuit să participe la concurs.
Colaborarea interesantă și inedită încurajează și participarea elevilor la competițiile studențești,
competiții care au ca scop dezvoltarea creativității tinerilor, dezvoltarea dimensiunii practice a noțiunilor
teoretice învățate, apropierea mediului educațional de cel industrial.

//includem libraria ce contine functii #define KD 2


utile pentru operatiile cu senzori //definim viteza standard a
#include <QTRSensors.h> motoarelor (viteza folosita cand
robotul merge drept)
//definim KP si KD-factorii de #define M1_DEFAULT_SPEED 200
proportionalitate folositi pentru a #define M2_DEFAULT_SPEED 200
calcula viteza in curbe //definim viteza maxima a motoarelor
#define KP .1 #define SPEEDMAX 250
32
32
44
//definim valoarea pentru care
 2014-2015
consideram ca senzorii sunt "pe negru" analogWrite(MOTOR1_PIN1,speedLeft);
#define SENSIBILITY 700 analogWrite(MOTOR1_PIN2,0);
//definim numarul de senzori }
Hour of Code
#define NUM_SENSORS 4 else
//definim senzorul considerat in {
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
mijloc analogWrite(MOTOR1_PIN1,0);
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
#define MIDDLE_SENSOR 2 analogWrite(MOTOR1_PIN2,-
//definim un timeout pentru senzori speedLeft);
The Magic Behind Google
#define TIMEOUT 2000 }
//definim pinul ce emite informatia if (speedRight>0)
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
#define EMITTER_PIN 7 {
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
//stabilim pinii folositi de motoare analogWrite(MOTOR2_PIN1,speedRight);
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
int MOTOR1_PIN1 = 3; analogWrite(MOTOR2_PIN2,0);
Concurs „Lider European”
int MOTOR1_PIN2 = 5;
int MOTOR2_PIN1 = 6;
}
else
int MOTOR2_PIN2 = 9; {
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
analogWrite(MOTOR2_PIN1,0);
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
//declaram o variabila de tipul analogWrite(MOTOR2_PIN2,-
senzorilor speedRight);
QTRSensorsRC qtrrc((unsigned char[]) }
{7, 8, 10, 11},
NUM_SENSORS, TIMEOUT, EMITTER_PIN);
 2015-2016 }

void in_circle()
void manual_calibration() {
{ //folosim acesta functie pentru a
//se calibreaza senzorii intra in cerc si pentru obstacolul cu
int i; linia intrerupta
for (i = 0; i < 250; i++) int i,time=0;
{ unsigned int sensors[4];
while(time<200)
qtrrc.calibrate(QTR_EMITTERS_ON); {
delay(20); int
} poz=qtrrc.readLine(sensors);
} for(i=0;i<4;i++)

void adjust_speed(int if(sensors[i]>SENSIBILITY)


&leftMotorSpeed,int &rightMotorSpeed) time=200;
{ if(time<200)
//limitam vitezele la viteza go(0,100);
maxima delay(2);
if (leftMotorSpeed>SPEEDMAX) time+=2;
leftMotorSpeed=SPEEDMAX; }
else }
if (leftMotorSpeed<-SPEEDMAX)
leftMotorSpeed=-SPEEDMAX; void out_circle(int x)
{
if (rightMotorSpeed>SPEEDMAX) //folosim acesta functie pentru a
rightMotorSpeed=SPEEDMAX; iesi din cerc si obstacolul cu zig-zag-
else ul
if (rightMotorSpeed<-SPEEDMAX) //in functie de senzorul ce nu se
rightMotorSpeed=-SPEEDMAX; afla "pe negru" ne deplasam in directia
} opusa
if(x==0)
void go(int speedLeft,int go(200,0);
speedRight) else
{ go(0,200);
//trimitem comenzile la motoare: }
//in functie de semnul vitezei
hotaram ce pin folosim (pentru a merge void forward(int motorSpeed)
inainte, respectiv inapoi) {
if (speedLeft>0) //merge inainte adaptand vitezele
{ pentru a lua curba daca e cazul
33
44 33
int leftMotorSpeed,rightMotorSpeed;
 2014-2015//citim valorile
int position =
senzorilor

leftMotorSpeed=M1_DEFAULT_SPEED+motorSp qtrrc.readLine(sensors);
eed; //determinam eroare fata de pozitia
Hour of Code
rightMotorSpeed=M2_DEFAULT_SPEED- centrala
motorSpeed; int error = position - 1500;
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
//stabilim variatia vitezei in
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
funtie de raza curbei
adjust_speed(leftMotorSpeed,rightMotorS int motorSpeed=KP*error+KD*(error-
peed); The Magic Behind Google lastError);
lastError=error;
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
go(leftMotorSpeed,rightMotorSpeed); int i,x,k=0;
}http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
//determinam numarul senzorilor
aflati pe "negru"
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
void setup() for(i=0;i<4;i++)
{ Concurs „Lider European”
//declaram modul de folosire al
if(sensors[i]>SENSIBILITY)
k++;
pinilor pentru motoare else
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
pinMode(MOTOR1_PIN1, OUTPUT);
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457 x=i;
pinMode(MOTOR1_PIN2, OUTPUT); //in functie de numarul senzorilor
pinMode(MOTOR2_PIN1, OUTPUT); aflati pe "negru" hotaram ce functie
pinMode(MOTOR2_PIN2, OUTPUT); apelam
delay(1000);  2015-2016 if(k==0)
in_circle();
manual_calibration(); else
} if(k==3)
out_circle(x);
int lastError = 0; else
void loop() forward(motorSpeed);
{ }
unsigned int sensors[4];

Calculatorul în activităţile de zi cu zi
ale serviciului secretariat
Burlan Ioana, secretar şef
Colegiul Naţional ”Tudor Vladimirescu”

Calculatorul a devenit indispensabil în toate activităţile noastre zilnice, iar tehnologia


comunicaţiilor şi posibilităţile oferite de Internet au un potenţial mare de eficientizare a muncii pe care o
prestăm la secretariat. Calculatorul a fost introdus pe scară largă în toate domeniile activităţii, până la
munca de birou. Calculatorul îşi găseşte utilitatea în fiecare domeniu de activitate, de la activităţile
serviciului secretariat până la relaţiile publice.
Având în vedere că, sistemele informatice moderne oferă toate datele şi informaţiile relevante din
cadrul unei instituţii de învăţământ, folosirea lor nu se limitează numai la sarcinile de rutină exitând
programe şi aplicaţii pe care le utilizăm şi care au adus un plus valoare şi o eficientizare a tuturor
activităţilor noastre .
Vă enumăr numai trei dintre cele mai importante aplicaţii pe care le utilizăm si care au eficientizat munca
serviciului secretariat:
 Aplicaţie pentru completarea actelor de studii;
 Aplicaţia REVISAL care a înlocuit cărţile de muncă evidenţa tinându-se electronic;
 Aplicaţia EDUSAL folosită la întocmirea lunară a salariilor pentru angajaţi.
În afară de acestea, în domeniul muncii de secretariat calculatorul oferă posibilitatea unei colaborări mai
uşoare cu Inspectoratul Şcolar, cu alte instituţii cu care colaborăm cât şi o informare mai rapida în vederea
întocmirii unor documente a cadrelor didactice şi celorlanţi angajaţi ai unităţii noastre şcolare . Datele pot fi
vehiculate prin reţeaua de calculatoare în câteva secunde, chiar şi atunci când colaboratorii sunt împrăştiaţi
în toată ţara. Acum nu mai putem trăi fără acest centru al informării noastre! Calculatorul.
34
34
44
 2014-2015
VII. Mici programatori ...viitori (posibil!) mari
Hour of Code programatori
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
Probleme propuse și rezolvate de elevi:

Rain The Magic Behind Google Timp maxim de execuţie: 1.25 s


http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
Autor Toma Alexandru, clasa a XI-a C Memoria totală disponibilă: 4 MB
Problemă propusă pentru clasa a IX-a Memoria disponibilă pentru stivă: 4 MB
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
Dimensiunea maximă a sursei: 10 KB
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


În timpul ploii am observat cum picăturile de apă se scurg pe geam, aşa că mi-am propus să studiez
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
mişcarea lor. Am împărţit geamul în N linii şi M coloane egale, astfel încât într-un pătrăţel se poate afla o
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
singură picătură de apă. Picăturile iniţiale le-am numit picături unitate. Toate picăturile se deplasează în jos
şi spre una dintre cele 3 direcții: spre dreapta (mişcare codificată cu 1), drept (mişcare codificată cu 2) sau
spre stânga (mişcare codificată cu 3), toate cu aceeași viteză. Pentru fiecare picătură unitate se cunoaşte
 2015-2016
direcţia. Dacă la un anumit moment în acelaşi pătrăţel se întâlnesc două sau trei picături ele se unifică şi
formează o picătură unificată formată din suma picăturilor unitate a picăturilor ce se unifică, iar direcţia ei
este direcţia celei mai mari picături ce se unifică. În cazul în care sunt mai multe picături formate din acelaşi
număr de picături unitate ce se unifică, direcţia picăturii unificate este direcţia celei aflate înainte de
unificare pe poziţia cu coloana cea mai mică. Pe marginile laterale ale geamului sunt montate garnituri, astfel
orice picătură care prin mișcarea ei loveşte garnitura, va cădea drept începând cu acel moment. Dacă o
picătură se află pe marginea inferioară a geamului ea va cădea drept, indiferent de mişcarea ei normală.
Pentru a aduna picăturile ce cad am pus sub fiecare coloana un minipahar. La sfârşit voi alege şi voi goli
unele minipahare într-o sticlă în care încap maxim P picături unitate, astfel încât numărul de picături din
sticlă să fie maxim, iar orice minipahar ales să poată fi golit în totalitate în sticlă.

Cerinţă
Cunoscând numărul de linii, numărul de coloane, şi pătrăţelele în care se găsesc picături unitate precum şi
direcţia acestora, să se determine numărul coloanei corespunzătoare minipaharului în care cade cea mai
mare picătură, numărul coloanei minipaharului cel mai plin şi numărul maxim de picături unitate ce intră în
sticlă respectând regulile din enunţ.

Date de intrare
Fişierul de intrare rain.in conţine pe prima linie trei numere naturale, separate printr-un singur spaţiu, N, M
şi P. Pe următoarele N linii sunt M numere separate printr-un singur spaţiu reprezentând codul mişcării
picăturii unitate sau 0 dacă nu există picătură unitate.

Date de ieşire
Fişierul de ieşire rain.out conţine pe prima linie două numere naturale, separate printr-un singur spaţiu,
reprezentând numărul coloanei corespunzătoare minipaharului în care cade picătura cea mai mare şi
respectiv numărul coloanei corespunzătoare minipaharului cel mai plin. Pe a doua linie se va afişa numărul
maxim de picături unitate din sticlă, respectând regulile din enunţ.

Restricţii
• 2 ≤ N, M ≤ 500
• 3 ≤ P ≤ 1000
• Minipaharele sunt suficient de mari pentru a aduna toate picăturile ce cad de pe acea coloană.
• Pentru primele două cerinţe se vor afişa coloanele cu indicele cel mai mic, în caz de egalitate.

35
44
35
Exemplu  2014-2015
rain.in rain.out Explicații
335 11 În prima secundă, în cele trei minipahare cad picăturile de pe ultima
203
Hour 4
of Code linie, iar picăturile de pe celelate linii coboară o linie. În cea de-a doua
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
secundă cad în toate minipaharele câte o picătură, iar picăturile de pe
131
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
linia 2 cad pe linia 3, picăturile aflate iniţial pe coloanele 1 şi 3 se
231
unifica în poziţia 3,1. Apoi singura picătură de pe ultima linie alcătuită
The Magic Behind din cele 2 Google
picături unitate cade în minipaharul 1.
Aşadar în minipaharul 1 cade şi cea mai mare picătură formată din 2
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
picături unitate şi este şi cel mai plin minipahar, minipaharele având 4,
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
2 şi 2 picături.
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
Numărul maxim de picături din sticlă este 4, golind fie minipaharul 1,
Concurs „Lider European”
fie minipaharele 2 şi 3.

http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
Soluția 1 (60 puncte)
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
1 # include <fstream>
2 using namespace std;
3
4
ifstream f("rain.in");
ofstream g("rain.out");
 2015-2016
5 int n,m,i,j,l,k,maxi,best,x,y,p,d,a[501][501],b[501][501],c[501];
6 short dy[]={-1,0,1};
7 bool ok,v[1001];
8 int main()
9 {
10 f>>n>>m>>p;
11 for(i=1;i<=n;i++)
12 for(j=1;j<=m;j++)
13 {
14 f>>b[i][j];
15 if(b[i][j])
16 a[i][j]=1;
17 }
18 for(i=2;i<=n;i++)
19 {
20 if(b[n-1][1]==3)
21 b[n-1][1]=2;
22 if(b[n-1][m]==1)
23 b[n-1][m]=2;
24 for(j=1;j<=m;j++)
25 {
26 c[j]+=a[n][j];
27 if(a[n][j]>maxi)
28 {
29 maxi=a[n][j];
30 x=j;
31 }
32 else
33 if(a[n][j]==maxi&&j<x)
34 x=j;
35 if(c[j]>best)
36 {
37 best=c[j];
38 y=j;
39 }
40 else
41 if(c[j]==best&&j<y)
42 y=j;
43 a[n][j]=0;
44 for(k=0;k<3;k++)
36
4436
45 if(j+dy[k]&&j+dy[k]<=m&&a[n-1][j+dy[k]]&&b[n-1][j+dy[k]]==k+1)
46  2014-2015
a[n][j]+=a[n-1][j+dy[k]];
47 }
48 for(l=n-1;l>=i;l--)
49 Hour of Code {
50 if(b[l-1][1]==3)
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
51 b[l-1][1]=2;
52 http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
if(b[l-1][m]==1)
53 b[l-1][m]=2;
54
55
The Magic Behind Google
for(j=1;j<=m;j++)
{
56 http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
a[l][j]=d=0;
57 for(k=0;k<3;k++)
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
58 if(j+dy[k]&&j+dy[k]<=m&&a[l-1][j+dy[k]]&&b[l-1][j+dy[k]]==k+1)
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
59 {
60
61
Concurs „Lider European” a[l][j]+=a[l-1][j+dy[k]];
if(a[l-1][j+dy[k]]>d)
62 {
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
63 d=a[l-1][j+dy[k]];
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
64 b[l][j]=b[l-1][j+dy[k]];
65 }
66 }
67
68 }
}  2015-2016
69 }
70 for(i=1;i<=m;i++)
71 {
72 c[i]+=a[n][i];
73 if(a[n][i]>maxi)
74 {
75 maxi=a[n][i];
76 x=i;
77 }
78 else
79 if(a[n][i]==maxi&&i<x)
80 x=i;
81 if(c[i]>best)
82 {
83 best=c[i];
84 y=i;
85 }
86 else
87 if(c[i]==best&&i<y)
88 y=i;
89 }
90 g<<x<<" "<<y<<'\n';
91 v[0]=1;maxi=ok=0;
92 for(i=1;i<=m&&!ok;i++)
93 for(j=p;j>=c[i]&&!ok;j--)
94 if(v[j-c[i]])
95 {
96 v[j]=1;
97 if(j>maxi)
98 {
99 maxi=j;
100 if(maxi==p)
101 ok=1;
102 }
103 }
104 g<<maxi;
105 f.close();
106 g.close();
107 return 0;
108 }
3737
44
Descrierea soluţiei 1 (60 puncte):  2014-2015
Prin parcurgeri repetate ale matricei de la ultima linie a matricei până la penultima linie ce poate avea
picături (observăm că treptat linile se golesc), obţinem numărul de picături ce cad la un anumit moment în
Hour
fiecare minipahar of Code
și noua configurație a picăturilor. La fiecare parcurgere tratăm special ultima linie din care
golimhttp://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
în minipahare, iar apoi pentru fiecare pătrat stabilim, căutând în cele 3 direcţii, picătura existentă
acolohttp://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
în următoarea configurație. După ce avem numărul de picături din fiecare pahar şi afişăm numărul
maxim de picături unitate dintr-o picătură ce cade într-un minipahar şi minipaharul cel mai plin,
determinăm numărul maxim de picături din sticlă: pentru fiecare pahar marcăm cu 1 sumele ce pot fi
obţinute din The
sumeleMagic Behind
deja existente Google
şi acel pahar, mai mici decât P.
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
Soluția 2(100 puncte)
1 http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
# include <fstream>
2 using namespace std;
3 ifstream f("rain.in");
Concurs „Lider European”
4 ofstream g("rain.out");
int n,m,i,j,l,k,maxi,best,x,y,p,d,t,p1,a[501][501],b[501][501],c[501];
5 http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
short dy[]={-1,0,1};
6 europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
7 bool ok,v[1001];
8 int main()
9 {
10
11
f>>n>>m>>p1;
for(i=1;i<=n;i++)
 2015-2016
12 for(j=1;j<=m;j++)
13 {
14 f>>b[i][j];
15 if(b[i][j])
16 a[i][j]=1;
17 }
18 for(i=1;i<=n;i++)
19 {
20 for(j=1;j<=m;j++)
21 {
22 c[j]+=a[n][j];
23 if(a[n][j]>maxi)
24 {
25 maxi=a[n][j];
26 x=j;
27 }
28 else
29 if(a[n][j]==maxi&&j<x)
30 x=j;
31 if(c[j]>best)
32 {
33 best=c[j];
34 y=j;
35 }
36 else
37 if(c[j]==best&&j<y)
38 y=j;
39 a[n][j]=b[n][j]=0;
40 }
41 for(j=n-1;j>=i;j--)
42 {
43 p=d=t=0;
44 if(b[j][1]==3)
45 b[j][1]=2;
46 if(b[j][m]==1)
47 b[j][m]=2;
48 for(l=1;l<=m;l++)
49 {
50 if(b[j][l]==1)
3838
44
51 {  2014-2015
52 a[j+1][l+1]+=a[j][l];
53 t=a[j][l];
54
55
Hour of Code }
b[j+1][l+1]=b[j][l];

56 http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
else
if(b[j][l]==2)
57 http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
58 {
59
60
The Magic Behind Google a[j+1][l]+=a[j][l];
if(a[j][l]>d)
61 http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
{
62 http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
d=a[j][l];
63 http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
b[j+1][l]=b[j][l];
64 }
65 }
66 Concurs „Lider European”else
67 http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
{
68 a[j+1][l-1]+=a[j][l];
69 europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
if(a[j][l]>p)
70 b[j+1][l-1]=b[j][l];
71 }
72
73
p=d;
d=t;
 2015-2016
74 t=0;
75 a[j][l]=0;
76 b[j][l]=0;
77 }
78 }
79 }
80 g<<x<<" "<<y<<'\n';
81 p=p1;
82 v[0]=1;maxi=ok=0;
83 for(i=1;i<=m&&!ok;i++)
84 for(j=p;j>=c[i]&&!ok;j--)
85 if(v[j-c[i]])
86 {
87 v[j]=1;
88 if(j>maxi)
89 {
90 maxi=j;
91 if(maxi==p)
92 ok=1;
93 }
94 }
95 g<<maxi;
96 f.close();
97 g.close();
98 return 0;
99 }
100

Descrierea soluţiei 2 (100 puncte):

Folosim parcurgerile repetate ale matricei astfel: golim picăturile de pe ultima linie şi de la penultima linie a
matricei până la ultima linie ce poate avea picături, stabilim poziţia viitoare a picăturii din fiecare pătrăţel.
Această abordare deşi foloseşte aceleaşi parcurgeri repetate ca şi prima soluţie este mai eficientă datorită
realizării matricei picăturilor doar din parcurgere, fără a fi nevoie şi de căutarea în cele 3 direcţii. Stabilirea
numărului maxim de picături se face ca şi în prima soluţie.

39
44
39
 2014-2015
VIII. Informatică DAR ... nu numai!
Hour of Code
Top 10 StartUp-uri ce trebuie urmărite în 2015
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

The Magic Behind Google


http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
Ilie Ovidiu Horațiu
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
Absolvent al clasei a XII-a A, promoția 2015
Concurs „Lider European”
În industria IT este o competiție acerbă, poate cea mai dură din lume. De aceea, succesul în acest
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
domeniu este greu de atins. Prin acest articol, îmi propun să prezint 10 startup-uri care au reușit să aducă ceva
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
nou în industrie și care, cred eu, vor avea un important rol în viitorul nostru.
Nu voi prezenta companii deja consacrate, cum ar fi Google, Facebook sau Yahoo, ci companii înființate
recent, cu o ascensiune fulminantă pe piață. Unele dintre ele poate vă sunt cunoscute, altele au nume pe care nu
 2015-2016
le-ați auzit niciodată. Dar, fără să mai zăbovesc, o să trec la topul meu:

10. Fyusion
Compania Fyusion, fondată de cercetătorul român
Radu Rusu, doctorand al facultății din Munchen, își
propune să îmbunătățească tehnologia imaginilor
3D și să o facă accesibilă oricui. Un prim pas a fost
făcut prin lansarea aplicației Fyuse, aplicație ce
permite oricărui smartphone să facă fotografii
panoramice 360, pe care să le poată încărca
ulterior într-o rețea de utilizatori ai aplicației.
Deși valoreaza doar 15 milioane USD, sumă mică
față de alte companii, am inclus-o in top deoarece
are un potențial enorm. Mulți specialiști consideră
că, dacă va fi condusă inteligent, va deveni noul standard în materie de fotografii și socializare, depășind chiar
celebrul Instagram.

9. Spring
Când spui Spring, spui, de fapt, o nouă modalitate de a
face shopping online. Fondată de David și Alan Tisch,
compania își propune să facă accesibile cumpărătorilor
diverse accesorii și articole vestimentare, prin
intermediul unei aplicații pentru mobil.
Startup-ul se află abia la început, dar a reușit deja să
ajungă la o valoare de 25 milioane USD foarte repede.
Ținând cont de dimensiunile industriei vestimentare și de
dorința oamenilor de avea acces ușor la diverse articole,
compania are un viitor promițător.

40
4440
 2014-2015
8. Coinbase
Hour
Coinbase a ținut contof
de Code
noul trend pe piața monetară:
ascensiunea monedei virtuale, bitcoin. Astfel, compania
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
fondată de Brian Armstrong și Fred Ehrsam a venit în
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
2012 cu un portofel virtual prin care oamenii pot utiliza
The Magic
foarte ușor monedele bitcoin. Behind Google
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
Situată in San Francisco, compania a ajuns la o valoare de
150 http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
milioane USD și are o perspectivă enormă pe piața
monetară, datorită tendinței de creștere a bitcoin.
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/

Concurs „Lider European”


http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
7. Slack
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457

Ajunși la locul 7, intrăm deja într-o altă categorie.Slack


este primulstartup din top ce depășește ca valoare cifra
de 1 miliard USD, atingând 2.3 miliarde USD.  2015-2016
Fondată de Stewart Butterfield, co-fondator Flickr,
compania aduce munca în echipă la un nou nivel prin
punerea la dispoziție a mai multor căi de comunicație
într-o singură aplicațe. Deci, de acum nu mai e nevoie să
lucrezi cu o duzină de pagini și aplicații, cum ar fi Yahoo,
Dropbox, etc. Tot ce ai nevoie este Slack!

6. Stripe
Fondată de frații irlandezi Patrick și John Collison, Stripe își propune să
creeze un sistem de plată online între firme și persoane, într-o manieră
mult mai securizată decât clasicul PayPal.
Poate de aceea, compania a reușit să ajungă la o valoare de 3.57 miliarde
USD, iar, în scurt timp, este estimat că va ajunge la 5 miliarde. Deci, în
viitor, s-ar putea ca Stripe să fie principala metodă de plată online.

5. Square
Compania a fost fondată în 2009 de Jack Dorsey și Jim McKelvey și iși propune
să ușureze plățile virtuale printr-o nouă modalitate de citire a cardurilor. Prin
intermediul unui device nou, Square permite plata prin card cu ajutorul
oricărui smartphone.
În octombrie 2014, startup-ul a fost evaluat la 6 miliarde USD și specialiștii
consideră că va crește mai mult în lunile ce urmează.

41
41
44
 2014-2015
4. Pinterest
Hour
Pinterest a fost unul of Code
dintre cele mai accesate site-uri din 2015,
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
ocupând în luna aprilie locul 37 la nivel mondial. Cu toate că pare
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
o cifră impresionantă, aceasta este chiar mai slabă decât cea
înregistrată în 2014 de aceeași companie.
Acest lucru Thepoate Magic Behind
sugera o oarecare Google
plafonare a site-ului, ce
permite distribuirea de fotografii, la nivelul de 11 miliarde USD, o
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
cifrăhttp://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
mare, totuși.
CEO-ul, Ben Silbermann, spune că are pregătite noi surprize ce
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
urmează să ducă compania fondată cu 5 ani în urmă pe noi culmi.
Concurs „Lider European”
3. Snapchat
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
Probabil acest nume este cunoscut multora din voi, întrucât Snapchat a
devenit o aplicație virală în anul 2014. Aplicația de mesagerie instant își
 2015-2016
propune transmiterea de imagini între utilizatori, acestea fiind stocate însă
temporar pentru a asigura o metodă mai distractivă de comunicare. Compania
a refuzat în mod inspirat oferte de 3, respectiv 4 miliarde de USD de la
Facebook și Google, ajungând să aibă o valoare de 4 ori mai mare.
Fondată în 2011 de Evan Spiegel și câțiva prieteni din facultate, compania a
avut un început ezitant, dar a ajuns probabil cea mai mare surpriză a anului trecut și cu siguranță este compania
cu cea mai mare creștere. Deși ocupă doar locul 3 in acest top cu o valoare de 15 miliarde USD, aplicația are cu
siguranță un viitor strălucit.

2. Uber
Fenomenul Uber a început în 2009 când Travis Kalanick a dorit să realizeze o
firmă de transport la nivel mondial. Și a reușit acest lucru fără doar și poate.
Astfel, Uber pune la dispoziția clienților diverse mijloace de transport, de la
mașini la elicoptere, toate putând fi închiriate prin aplicația facută pentru
smartphone.
Compania a ajuns la un nivel uluitor de 40 miliarde USD, iar graficele arată că
a avut în primii 6 ani de la lansare o creștere mai mare decât legendarul
Facebook. Mai mult, aplicația a ajuns deja să ofere servicii în 58 de țări, cifră impresionantă ținând cont de
numărul de vehicule ce au trebuit să fie cumpărate în acest sens.

1. Xiaomi
Ei bine, am ajuns și la ocupantul locului întâi, compania chineză Xiaomi. Deși un
nume poate necunoscut, compania a avut un impact major pe piață prin
contruirea de smartphone-uri performante și mult mai ieftine decât cele ale
concurenței.
Fondată de Lei Jun și având sediul în Beijing, China, compania a ajuns în doar 4
ani la o cifra de 45 miliarde USD ca valoare și, deși nu se poate compara încă cu
giganții Apple și Samsung, în acest ritm poate deveni o concurență serioasă sau
chiar liderul mondial pe piața de smartphone-uri.

42
4442
Companiile pe care vi le-am prezentat reprezintă mari speranțe ale industriei IT, ce vor ajunge în scurt timp să
 2014-2015
rivalizeze cu giganții de pe piață. Cine știe? Poate că în câțiva ani aceste startup-uri vor reprezenta companiile
cheie ale IT-ului, luând locul Twitter-ului sau al Apple-ului. Totuși, mai e mult până departe și e nevoie și de puțin
noroc. Hour of Code
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
Site-uri utile
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI

https://www.bento.io/
The Magic Behind Google
https://www.codeschool.com/
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
https://codecombat.com/
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.codecademy.com/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
https://hotpot.uvic.ca/
http://www.codecademy.com/learn/learn-angularjs
Concurs „Lider European”
https://www.moodle.ro/
https://hourofcode.com/ro
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
http://varena.ro/
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
http://www.pbinfo.ro/
http://www.infoarena.ro/

 2015-2016

Certificări C.N.T.V. în domeniul Informaticii

https://sites.google.com/site/cntvtgjiu/

Autorii articolelelor sunt profesori, actuali și foști elevi ai Colegiului Național ”Tudor Vladimirescu”

43
43
44
 2014-2015
 2014-2015
Hour of Code
Hour of Code
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/hour-of-code-si-la-c-n-t-v#.Ve_cCqDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
http://www.gorjeanul.ro/pulsul-zilei/feedback-hour-of-code-la-c-n-t-v#.Ve_cgaDtkoI
The Magic Behind Google
The Magic Behind Google
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://www.gorjeanul.ro/pulsul-zilei/de-la-c-n-t-v-la-visul-american-si-inapoi#.VexMO7udIx0
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://gorjexclusiv.ro/informatician-gorjean-ambasador-google-la-el-acasa/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
http://www.gorj-domino.ro/tanarul-bogdan-drutu-angajat-la-google-s-a-intors-in-targu-jiu/
Concurs „Lider European”
Concurs „Lider European”
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
http://www.europacasanoastra.ro/articol/ca%C8%99tigatorii-vizitelor-la-bruxelles-la-comisia-
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457
europeana-din-cadrul-concursului-de-proiecte-lider-european/4457

 2015-2016
 2015-2016

44
44
44

S-ar putea să vă placă și