Sunteți pe pagina 1din 97

1

MINISTERUL EDUCAIEI I TINERETULUI AL


REPUBLICII MOLDOVA

Academia de Studii Economice din Moldova




Olimpiada Republican
la Informatic. Ediia 2008

















Chiinu 2008
2

3

Olimpiada Republican la Informatic. Ediia 2008. Chiinu:
Editura ASEM, 2008. 96 p.
Lucrarea conine problemele propuse la Olimpiada Republican la
Informatic a elevilor, ediia 2008, i unele informaii despre Academia de
Studii Economice din Moldova gazda Olimpiadei. Pentru toate problemele
n lucrare sunt descrise i soluiile.
Materialele Olimpiadei pot fi de un real folos la studierea informaticii
att elevilor, ct i profesorilor de informatic, iar informaiile despre
Academia de Studii Economice pot fi utile, de asemenea, elevilor, ndeosebi
absolvenilor de coli i licee din Republica Moldova.





Colegiul de redacie:
Anatol Gremalschi, doctor habilitat, profesor universitar, UTM
Ion Bolun, doctor habilitat, profesor universitar, ASEM
Iurie Mocanu, Ministerul Educaiei i Tineretului
Dumitru Codreanu, Universitatea Bucureti
Constantin Dolghieru, Universitatea Politehnic, Bucureti
Bogdna Denis Universitatea Tehnic, Iai

Procesare:
Sergiu Corlat CTICE









Editura ASEM


4







CUPRINS
Adresarea Juriului ........................................................................... 5

Instruciune ........................................................................................ 7

Ziua 1. Clasele 79 ............................................................................. 9
Lacuri ........................................................................................................ 10
Sistemul roman ........................................................................................ 15
Numere magice ........................................................................................ 20

Ziua 1. Clasele 1012 ....................................................................... 22
Lacuri ........................................................................................................ 23
Sistemul roman ........................................................................................ 27
Numere magice ........................................................................................ 33

Ziua 2. Clasele 79 ........................................................................... 40
Ppui ........................................................................................... 41
Grupuri ......................................................................................... 45
Chimie .......................................................................................... 49

Ziua 2. Clasele 1012 ....................................................................... 54
Ppui ........................................................................................... 55
Grupuri ......................................................................................... 59
Chimie .......................................................................................... 66

5
3. Academia de Studii Economice din Moldova ................................ 71

3.1. Prezentarea general a ASEM .......................................................... 71
3.2. Facultatea Business i Administrarea
Afacerilor ........................................................................................ 74
3.3. Facultatea Cibernetic, Statistic i
Informatic Economic (www.csie.ase.md) .............................. 76
3.4. Facultatea Contabilitate ................................................................... 80
3.5. Facultatea Economie General i Drept ........................................... 83
3.6. Facultatea Finane .............................................................................. 84
3.7. Facultatea Relaii Economice Internaionale ................................... 87
4. Admiterea ASEM-2008 ....................................................................... 90

Anex Lista participanilor la Olimpiada Republican
la Informatic a elevilor, ediia 2008 ........................................ 92


6
Dragi elevi,

n acest an Olimpiada Republican la Informatic se desfoar n
cadrul Sptmnii Tehnologiilor Informaionale. Pe parcursul acestei
sptmni n Republica Moldova snt organizate mai multe
evenimente simpozioane tiinifice, conferine i ateliere de lucru,
prezentri de soluii hard i soft evenimente, care pun nc o dat n
eviden importana tiinei calculatoarelor n lumea modern. Ne
bucurm foarte mult, c Olimpiada noastr a devenit un pol de
atracie nu numai pentru elevi i cadre didactice, dar i pentru factorii
de decizie, oamenii de afaceri. Sper c voi, cei mai talentai elevi din
Republica Moldova, prin rezultatele voastre vei demonstra ct de
frumoas i captivant este aceast disciplin colar.
coala ne ajut s devenim oameni. Informatica contribuie la
faptul ca oamenii s poat naviga n oceanul de informaii, s poat
lua decizii i s poat s le transpun n via. i nu conteaz, c
deciziile i planurile respective sunt scrise n Pascal, C sau C++. Mai
important este faptul, c oamenii societii informaionale n devenire
vor fi deschii lumii, se vor afirma ca buni specialiti, vor promova
cultura informaional.

n acest an, Consiliul Olimpic propune participanilor mai multe
probleme, care vor permite competitorilor s-i manifeste
competenele, s propun soluii originale, s demonstreze o sinergie
a cunotinelor acumulate n procesul studierii tuturor disciplinelor
colare.

Dorim tuturor participanilor la Olimpiad noi succese i sperm
c experiena acumulat n cadrul competiiilor va fi de un real folos
pentru toate instituiile de nvmnt din ara noastr.

n numele Consiliului Olimpic la Informatic,

Anatol Gremalschi,
doctor habilitat,
profesor universitar
7

Instruciune

I. Fiiere i directoare

I.1. n fiecare zi de concurs, competitorul va rezolva probleme de natur
algoritmic i va trimite programele elaborate, prin reea, pe serverul pus
la dispoziie de juriu. Se accept numai fiierele surs ale programelor, cte
unul pentru fiecare problem.

I.2. Fiierele surs vor avea aceleai nume ca i fiierele de
intrare/ieire. De exemplu, n cazul fiierelor de intrare/ieire numite
SORTARE.IN i SORTARE.OUT, fiierul surs se va numi
SORTARE.PAS, SORTARE.C, sau SORTARE.CPP.

I.3. Fiierele de intrare/ieire vor fi citite/scrise n catalogul curent,
evitndu-se introducerea cilor absolute sau relative de acces. De exemplu,
n cazul limbajului PASCAL i a fiierului SORTARE.IN se va utiliza
apelul assign(f,sortare.in). Pentru un program n limbajul C se va utiliza
apelul f=fopen("sortare.in","rt"). Orice fiiere temporare utilizate de
program n cursul execuiei vor fi create numai n directorul curent.

I.4. Programul nu va scrie nimic pe ecran, nu va citi nimic de la tastatur,
nu va lucra cu alte fiiere dect cel de intrare i de ieire, cu excepia
cazurilor n care se indic altfel n enunul problemei.

II. Limbaje de programare

II.1. Limbajele de programare acceptate la Olimpiad snt FreePascal
si GnuCC, cu versiunile i opiunile de compilare specificate n
Regulamentul Olimpiadei.

II.2. La dorin, competitorii pot lucra n Turbo PASCAL sau Turbo C,
ns, la evaluare, compilarea programelor surs va fi fcut cu
FreePascal i GCC.

II.3. Programul competitorului poate utiliza toate mijloace oferite de
compilatorul ales, cu excepia celor care intra n contradicie cu
Regulamentul Olimpiadei. Printre aciunile interzise se numr:
apelul de ntreruperi, scrierea n porturi, resetarea timpului curent,
lansarea altor programe i/sau procese, accesarea reelei.

8
II.4. Programul competitorului trebuie sa returneze sistemului de
operare codul de ieire nul. Astfel, n cazul ieirilor forate din
program, programatorii PASCAL vor scrie halt(0), iar programatorii C
vor scrie return 0 la ieirea din main i exit(0) n celelalte cazuri.

II.5. Competitorii vor avea la dispoziie fiierele C_PAS.BAT i
C_CPP.BAT, care compileaz programele-surs cu exact aceleai
opiuni ca i evaluatorul. Competitorii care doresc ca programele lor s
fie compilate cu alte opiuni dect cele folosite implicit de sistemul de
evaluare, o pot face prin includerea opiunilor dorite n programul-
surs, folosind mijloacele prevzute de limbajul respectiv: {$R-,B- ...}
in PASCAL si #pragma in C/C++.

III. Alte informaii

III.1. Competitorii vor lucra n sistemul de operare Windows.

III.2. Competitorii vor avea dreptul s utilizeze orice programe
instalate pe calculator, n afar de cele de configurare i/sau
monitorizare a sistemului de operare sau a reelei. Competitorii nu au
dreptul s instaleze sau s dezinstaleze programe, s tearg i/sau s
modifice alte fiiere, dect cele create de ei.

III.3. n cazul nclcrii cerinelor de mai sus, participantul poate fi
sancionat cu anularea rezultatului pentru problema n cauz, pentru
ziua respectiv, sau cu nlturarea de la competiie.
9



Ziua 1. Clasele 79


Denumirea
problemei
Numrul
de puncte
alocat
problemei
Denumirea
fiierului
surs
Denumirea
fiierului
de intrare
Denumirea
fiierului
de ieire
Lacuri 100
LACURI . PAS
LACURI . C
LACURI . CPP
LACURI . I N LACURI . OUT
Sistemul
roman
100
ROMAN. PAS
ROMAN. C
ROMAN. CPP
ROMAN. I N ROMAN. OUT
Numere
magice
100
MAGI C. PAS
MAGI C. C
MAGI C. CPP
MAGI C. I N MAGI C. OUT
Total 300
- - -


10
Lacuri

Pe o hart digital snt reprezentate lacurile unei rezervaii
naturale. Harta digital const din microzone i este reprezentat n
memoria calculatorului cu ajutorul unei matrice binare
m n
ij
b B

= .
Elementul b
ij
indic specificul microzonei respective: pmnt ( 0 =
ij
b
) sau ap ( 1 =
ij
b ). Se consider c bazinele acvatice distincte nu au
pe hart microzone cu laturi comune.
Elaborai un program care calculeaz numrul de lacuri k,
reprezentate pe hart.

Date de intrare. Fiierul text LACURI . I N conine pe prima
linie numerele ntregi n i m separate prin spaiu. Fiecare din
urmtoarele n linii ale fiierului de intrare conine cte m numere
ntregi separate prin spaiu. Linia 1 + i a fiierului de intrare conine
numerele ntregi b
i1
, b
i2
, ..., b
ij
, ..., b
im
.

Date de ieire. Fiierul text LACURI . OUT va conine pe o
singur linie un numr ntreg numrul de lacuri k.
Exemplu.
LACURI . I N LACURI . OUT
5 7
0 0 1 1 0 0 1
0 1 0 1 1 1 1
1 1 1 0 0 1 1
1 1 0 0 0 1 1
0 0 0 0 0 1 0
2


Restricii. 20 , 1 m n . Timpul de execuie nu va depi 0,5
secunde. Programul va folosi cel mult 32 Megaoctei de memorie
operativ. Fiierul surs va avea denumirea LACURI . PAS, LACURI . C
sau LACURI . CPP.
11
Rezolvare

Presupunem c avem la dispoziie vopsele de culori distincte,
codificate prin numerele ntregi 1, 2, 3, 4, ... . Iniial toate lacurile snt
vopsite n culoarea 1. Mai nti, vom vopsi cu culoarea 2 unul
din lacurile de pe harta digital, nu conteaz care anume. n
continuare, vopsim cu culoarea 3 un alt lac .a.m.d., pn cnd pe
hart nu vor mai exista lacuri de culoarea 1. Prin c vom nota codul
ultimei culori utilizate. Evident, numrul de lacuri reprezentate pe
harta digital este 1 = c k .
Pentru a vopsi un lac oarecare cu culoarea s, mai nti gsim
n matricea B un element 1 =
pq
b . Atribuim acestui element valoarea
s. n continuare, imitm scurgerea vopselei s din microzona (p, q)
n microzonele adiacente ce au culoarea 1; din microzonele care
numai ce au fost vopsite n culoarea s n microzonele adiacente lor
ce tot au culoarea 1 .a.m.d.
n programul ce urmeaz, scurgerea vopselei este realizat cu
ajutorul procedurii recursive Vopseste, care efectueaz urmtoarele
operaii:
dac culoarea microzonei curente nu coincide cu 1, atunci
n procedura Vopseste nu se efectuiaz nici o operaie;
dac culoarea microzonei curente coincide cu 1, atunci
microzona n studiu este vopsit n culoarea s, iar procedura Vopseste
este apelat recursiv pentru cele patru microzonele adiacente: cea de
sus (p-1, q), cea din dreapta (p, q+1), cea de jos (p+1, q) i cea din
stnga (p, q-1).
Pentru a evita verificrile necesare n cazul microzonelor de la
margini, vom incadra harta digital ntru-un chenar, nscriind n
celulele respective ale tabloului B valoarea -1.

Program Lacur i ;
{ Cal cul ar ea numar ul ui de l acur i }
const nmax=21;
mmax=21;
var n, m, k : i nt eger ;
B : array[ 0. . nmax, 0. . mmax] of - 1. . 255;

procedure Ci t est e;
var i , j : i nt eger ;
12
I nt r ar e : t ext ;
begin
assi gn( I nt r ar e, 'LAC.IN') ;
r eset ( I nt r ar e) ;
r eadl n( I nt r ar e, n, m) ;
for i : =1 to n do
begin
for j : =1 to mdo r ead( I nt r ar e, B[ i , j ] ) ;
r eadl n( I nt r ar e) ;
end;
cl ose( I nt r ar e) ;
end; { Ci t est e }

procedure Scr i e;
var I esi r e : t ext ;
begin
assi gn( I esi r e, 'LAC.OUT') ;
r ewr i t e( I esi r e) ;
wr i t el n( I esi r e, k) ;
cl ose( I esi r e) ;
end; { Scr i e }

procedure Chenar ;
{ Bor damt abl oul B cu - 1 }
var i , j : i nt eger ;
begin
for i : =0 to n+1 do
begin B[ i , 0] : =- 1; B[ i , m+1] : =- 1; end;
for j : =0 to m+1 do
begin B[ 0, j ] : =- 1; B[ n+1, j ] : =- 1; end;
end; { Chenar }

procedure Vopsest e( p, q, s : i nt eger ) ;
{ Vopsest e l acul ce cont i ne mi cr ozona ( p, q) i n
cul oar ea s }
begin
if B[ p, q] =1 then
begin
{ vopsi mmi cr ozona ( p, q) }
B[ p, q] : =s;
{ vopsi mmi cr ozona de sus }
Vopsest e( p- 1, q, s) ;
{ vopsi mmi cr ozona di n dr eapt a }
13
Vopsest e( p, q+1, s) ;
{ vopsi mmi cr ozona de j os }
Vopsest e( p+1, q, s) ;
{ vopsi mmi cr ozona di n st i nga }
Vopsest e( p, q- 1, s) ;
end; { t hen }
end; { Vopsest e }

function Sunt Lacur i Nevopsi t e( var p, q : i nt eger ) :
bool ean;
{ Ret ur neaza t r ue daca exi st a cel put i n un l ac
nevopsi t }
{ si coor donat el e p, q al e mi cr ozonei ce ar e
cul oar ea 1 }
label 1;
var i , j : i nt eger ;
begin
Sunt Lacur i Nevopsi t e: =f al se;
for i : =1 t o n do
for j : =1 t o mdo
if B[ i , j ] =1 then
begin
Sunt Lacur i Nevopsi t e: =t r ue;
p: =i ; q: =j ;
goto 1;
end;
1: end; { Sunt Lacur i Nevopsi t e }

procedure Numar a;
{ Numar a l acur i l e de pe har t a di gi t al a }
var p, q, s : i nt eger ;
begin
s: =1;
while Sunt Lacur i Nevopsi t e( p, q) do
begin
s: =s+1;
Vopsest e( p, q, s) ;
end;
k: =s- 1;
end; { Numar a }

begin
Ci t est e;
14
Chenar ;
Numar a;
Scr i e;
end.

Evident, numrul de apeluri recursive ale procedurii
Vopsest e nu poate depi numrul de microzone ale hrii digitale.
Prin urmare, timpul de execuie a procedurii Vopsest e este T n m,
iar spaiul necesar de memorie n stiv V
s
n m. Conform restriciilor
problemei, dimensiunile imaginii n, m 20, deci timpul de execuie
T <<0,5 secunde, iar necesarul de memorie V
s
< 16 Koctei.

15
Sistemul roman

Sistemul roman de numeraie utilizeaz cifrele I, V, X, L, C, D
i M, care au urmtoarea semnificaie: I 1; V 5; X 10; L 50; C
100; D 500; M 1000.
Fie
n i i
c c c c c L L
1 2 1 +
o succesiune de cifre, ce reprezint un
numr scris n sistemul roman de numeraie. Prin
) (
1 2 1 n i i
c c c c c Val L L
+
vom nota valoarea acestui numr, scris n
sistemul zecimal. De exemplu,

1 ) I ( = Val ;
2 ) II ( = Val ;
4 ) IV ( = Val ;
14 ) XIV ( = Val ;
19 ) XIX ( = Val ;
1963 ) MCMLXIII ( = Val .

n sistemul roman, valoarea numrului se calculeaz
parcurgnd irul de la stnga la dreapta, nsumnd valorile cifrelor
respective. Aceast regul are ns o excepie: dac n dreapta cifrei
curente
i
c se afl o cifr
1 + i
c cu o valoare mai mare, n suma
respectiv se include diferena ) ( ) (
1 i i
c Val c Val
+
. n continuare, se
trece, dac exist, la cifra
2 + i
c .
Exemplu:

14 ] 1 5 [ 10 )] I ( ) V ( [ ) X ( ) XIV ( = + = + = Val Val Val Val .

Expresiile, scrise n sistemul roman de numeraie, se definesc
conform urmtoarelor formule metalingvistice:
<Cifr roman> ::= I | V| X| L| C| D| M
<Numr roman> ::= <Cifr roman>{< Cifr roman>}
<Operator> ::= +| -
<Expresie aritmetic roman> ::=
<Numr roman>{<Operator><Numr roman>}.
16
Elaborai un program care calculeaz valoarea expresiilor
aritmetice, scrise n sistemul roman de numeraie.
Date de intrare. Fiierul text ROMAN. I N conine pe o singur
linie un ir de caractere ce reprezint o expresie aritmetic, scris n
sistemul roman de numeraie.
Date de ieire. Fiierul text ROMAN. OUT va conine pe o
singur linie un numr ntreg valoarea expresiei aritmetice din
fiierul de intrare, scris n sistemul zecimal de numeraie.
Exemplu
ROMAN. I N ROMAN. OUT
I +I V- XI X - 14
Restricii. irul din fiierul de intrare va conine cel mult 255
de caractere. Fiecare din numerele romane va conine cel mult 5 cifre.
Timpul de execuie nu va depi 0,5 secunde. Programul va folosi cel
mult 32 Megaoctei de memorie operativ. Fiierul surs va avea
denumirea ROMAN. PAS, ROMAN. C sau ROMAN. CPP.


Rezolvare

Pentru a calcula valoarea expresiei aritmetice scrise n sistemul
roman de numeraie, parcurgem irul de caractere de intrare i
transformm fiecare numr roman n sistemul zecimal. Numerele
zecimale le vom memora n tabloul Numer e, iar operatorii n
tabloul Oper at or i .
n continuare, parcurgnd tabloul Oper at or i , efectum
operaiile respective asupra valorilor din tabloul Numer e.
Conform restriciilor problemei, cea mai mare valoare a
expresiei din irul de intrare S poate fi 000 255 M 255 = . Prin
urmare, pentru memorarea numerelor romane i efectuarea calculelor
respective vom folosi tipul de date l ongi nt .

17
Program Si st emul Roman;
{ Si st emul r oman de numer at i e - Cl asel e 07- 09 }
const nmax=128;
{ numar ul maxi mal de numer e di n expr esi e }
var S : string; { expr esi a scr i sa i n si st emul r oman }
X : l ongi nt ; { val oar ea expr esi ei i n si st emul zeci mal }
Numer e : array[ 1. . nmax] of l ongi nt ;
{ numer el e di n expr esi e }
Oper at or i : array[ 1. . nmax] of char ;
{ oper at or i i di n expr esi e }

procedure Ci t est e;
var I nt r ar e : t ext ;
begin
assi gn( I nt r ar e, 'ROMAN.IN') ;
r eset ( I nt r ar e) ;
r eadl n( I nt r ar e, S) ;
cl ose( I nt r ar e) ;
end; { Ci t est e }

procedure Scr i e;
var I esi r e : t ext ;
begin
assi gn( I esi r e, 'ROMAN.OUT') ; r ewr i t e( I esi r e) ;
wr i t el n( I esi r e, X) ; cl ose( I esi r e) ;
end; { Scr i e }

function Val oar eaCi f r ei ( Ci f r a : char ) : l ongi nt ;
{ r et ur neaza val oar ea zeci mal a a ci f r ei r omane Ci f r a }
begin
case Ci f r a of
'I' : Val oar eaCi f r ei : =1;
'V' : Val oar eaCi f r ei : =5;
'X' : Val oar eaCi f r ei : =10;
'L' : Val oar eaCi f r ei : =50;
'C' : Val oar eaCi f r ei : =100;
'D' : Val oar eaCi f r ei : =500;
'M' : Val oar eaCi f r ei : =1000;
end;
end; { Val oar eaCi f r ei }

function Val oar eaNumar ul ui ( T : string) : l ongi nt ;
{ Ret ur neaza val oar ea zeci mal a numar ul ui r oman T }
var y : l ongi nt ;
18
i : i nt eger ;
begin
y: =0;
i : =1;
repeat
if i =l engt h( T) then
begin
y: =y+Val oar eaCi f r ei ( T[ i ] ) ;
i : =i +1;
end
else
begin
if Val oar eaCi f r ei ( T[ i ] ) >=
Val oar eaCi f r ei ( T[ i +1] ) then
begin
y: =y+Val oar eaCi f r ei ( T[ i ] ) ;
i : =i +1;
end { t hen }
else
begin
y: =y+Val oar eaCi f r ei ( T[ i +1] ) -
Val oar eaCi f r ei ( T[ i ] ) ;
i : =i +2;
end; { el se }
end;
until i >l engt h( T) ;
Val oar eaNumar ul ui : =y;
end; { Val oar eaNumar ul ui }

procedure Cr eazaTabl our i l e;
{ cr eaza t abl our i l e Numer e si Oper at or i }
var i , k : i nt eger ;
Oper : char ;
T : string;
begin
{ i ni t i al i zar ea t abl our i l or }
for k: = 1 to nmax do
begin Numer e[ k] : =0; Oper at or i [ k] : =' '; end;
i : =0; { i ndi ce pent r u si r ul S }
k: =0; { i ndi ce pent r u t abl our i l e Numer e si Oper at or i }
repeat
{ copi emnumar ul cur ent di n S i n T }
T: ='';
repeat
19
i : =i +1;
T: =T+S[ i ] ;
until ( i =l engt h( S) ) or ( S[ i +1] in [ '+', '-'] ) ;
k: =k+1;
Numer e[ k] : =Val oar eaNumar ul ui ( T) ;
if i <l engt h( S) then
begin
i : =i +1;
Oper at or i [ k] : =S[ i ] ;
end;
until i =l engt h( S) ;
end; { Cr eazaTabl our i l e }

procedure Cal cul eaza;
var k : i nt eger ;
Semn : char ;
begin
X: =0;
Semn: ='+';
k: =0;
repeat
k: =k+1;
case Semn of
'+' : X: =X+Numer e[ k] ;
'-' : X: =X- Numer e[ k] ;
end; { case }
if ( Oper at or i [ k] <> ' ') then
Semn: =Oper at or i [ k] ;
until( Oper at or i [ k] = ' ') ;
end; { Cal cul eaza }

begin
Ci t est e;
Cr eazaTabl our i l e;
Cal cul eaza;
Scr i e;
end.

Din textul programului Roman rezult c irul de intrare S i
tabloul Oper at or i vor fi parcurse cte o singur dat. Prin urmare,
timpul de execuie va fi cu mult mai mic ca 0,5 secunde.

20
Numere magice

Numrul natural x este considerat ca fiind unul magic, dac
numrul de repetri este acelai pentru fiecare cifr din componena
lui. Exemple:
1100, 81239, 756675, 454566.
Elaborai un program care, pentru orice numar natural n,
calculeaz cel mai mic numr magic x, n x .

Date de intrare. Fisierul text MAGI C. I N contine pe prima linie
numarul natural n.

Date de iesire. Fisierul text MAGI C. OUT va contine pe o
singura linie numarul magic x.

Exemplu.
MAGI C. I N MAGI C. OUT
2235 2244

Restrictii. 000 000 1 1 n . Timpul de executie nu va depasi
1 secunda. Programul va folosi cel mult 32 Megaoctei de memorie
operativ. Fisierul sursa va avea denumirea MAGI C. C, MAGI C. CPP
sau MAGI C. PAS.


Rezolvare


Numrul x poate fi gasit prin metoda trierii, atrubuindu-i
consecutiv lui x valorile n, 1 + n , 2 + n , 3 + n .a.m.d. Procesul de
triere se termin cnd gsim un numr magic.
Evident, pentru a determina dac x este un numr magic, va
trebuie s scriem un o funcie care calculeaz i compar numerele de
apariii ale cifrelor din componena lui .

21
Program Magi c;
{ Cl asel e 07- 09 }
type Ci f r e = Array [ 0. . 9] of Shor t I nt ;
var n : LongI nt ;
I nt r ar e , I esi r e : Text ;

function I smagi c( n : LongI nt ) : Bool ean;
{ Ret ur neaza t r ue daca n est e magi c si f al se
i n caz cont r ar }
var Di gs : Ci f r e;
i : I nt eger ;
c : I nt eger ;
begin
Fi l l Char ( Di gs, si zeof ( Di gs) , 0) ;
while ( n>0) do
begin
I nc( Di gs[ n mod 10] ) ;
n : = n div 10;
end;
c : = - 1;
for i : = 0 to 9 do
begin
if Di gs[ i ] >0 then
begin
if c = - 1 then c : = Di gs[ i ]
else if c<>Di gs[ i ] then exi t ( Fal se) ;
end;
end;
I smagi c : = Tr ue;
end;

begin
Assi gn( I nt r ar e, ' MAGI C. I N' ) ;
Reset ( I nt r ar e) ;
Readl n( I nt r ar e, n) ;
Cl ose( I nt r ar e) ;
Assi gn( I esi r e, ' MAGI C. OUT' ) ;
Rewr i t e( I esi r e) ;
while not i smagi c( n) do I nc( n) ;
Wr i t el n( I esi r e, n) ;
Cl ose( I esi r e) ;
end.
22




Ziua 1. Clasele 1012



Denumirea
problemei
Numrul
de puncte
alocat
problemei
Denumirea
fiierului
surs
Denumirea
fiierului
de intrare
Denumirea
fiierului
de ieire
Lacuri 100
LACURI . PAS
LACURI . C
LACURI . CPP
LACURI . I N LACURI . OUT
Sistemul
roman
100
ROMAN. PAS
ROMAN. C
ROMAN. CPP
ROMAN. I N ROMAN. OUT
Numere
magice
100
MAGI C. PAS
MAGI C. C
MAGI C. CPP
MAGI C. I N MAGI C. OUT
Total 300
- - -
23
Lacuri

Pe o hart digital snt reprezentate lacurile unei rezervaii
naturale. Harta digital const din microzone i este reprezentat n
memoria calculatorului cu ajutorul unei matrice binare
m n
ij
b B

= .
Elementul b
ij
indic specificul microzonei respective: pmnt ( 0 =
ij
b
) sau ap ( 1 =
ij
b ). Se consider c bazinele acvatice distincte nu au
pe hart microzone cu laturi comune.
Elaborai un program care calculeaz numrul de lacuri k,
reprezentate pe hart.

Date de intrare. Fiierul text LACURI . I N conine pe prima
linie numerele ntregi n i m separate prin spaiu. Fiecare din
urmtoarele n linii ale fiierului de intrare conine cte m numere
ntregi separate prin spaiu. Linia 1 + i a fiierului de intrare conine
numerele ntregi b
i1
, b
i2
, ..., b
ij
, ..., b
im
.

Date de ieire. Fiierul text LACURI . OUT va conine pe o
singur linie un numr ntreg numrul de lacuri k.
Exemplu.
LACURI . I N LACURI . OUT
5 7
0 0 1 1 0 0 1
0 1 0 1 1 1 1
1 1 1 0 0 1 1
1 1 0 0 0 1 1
0 0 0 0 0 1 0
2


Restricii. 20 , 1 m n . Timpul de execuie nu va depi
0,5 secunde. Programul va folosi cel mult 32 Megaoctei de
memorie operativ. Fiierul surs va avea denumirea
LACURI . PAS, LACURI . C sau LACURI . CPP.
24
Rezolvare

Presupunem c avem la dispoziie vopsele de culori distincte,
codificate prin numerele ntregi 1, 2, 3, 4, ... . Iniial toate lacurile snt
vopsite n culoarea 1. Mai nti, vom vopsi cu culoarea 2 unul
din lacurile de pe harta digital, nu conteaz care anume. n
continuare, vopsim cu culoarea 3 un alt lac .a.m.d., pn cnd pe
hart nu vor mai exista lacuri de culoarea 1. Prin c vom nota codul
ultimei culori utilizate. Evident, numrul de lacuri reprezentate pe
harta digital este 1 = c k .
Pentru a vopsi un lac oarecare cu culoarea s, mai nti gsim
n matricea B un element 1 =
pq
b . Atribuim acestui element valoarea
s. n continuare, imitm scurgerea vopselei s din microzona (p, q)
n microzonele adiacente ce au culoarea 1; din microzonele care
numai ce au fost vopsite n culoarea s n microzonele adiacente lor
ce tot au culoarea 1 .a.m.d.
n programul ce urmeaz, scurgerea vopselei este realizat cu
ajutorul procedurii recursive Vopsest e, care efectueaz
urmtoarele operaii:
dac culoarea microzonei curente nu coincide cu 1, atunci
n procedura Vopsest e nu se efectuiaz nici o operaie;
dac culoarea microzonei curente coincide cu 1, atunci
microzona n studiu este vopsit n culoarea s, iar procedura
Vopsest e este apelat recursiv pentru cele patru microzonele
adiacente: cea de sus (p-1, q), cea din dreapta (p, q+1), cea de jos
(p+1, q) i cea din stnga (p, q-1).
Pentru a evita verificrile necesare n cazul microzonelor de la
margini, vom incadra harta digital ntru-un chenar, nscriind n
celulele respective ale tabloului B valoarea -1.

Program Lacur i ; { Cal cul ar ea numar ul ui de l acur i }
const nmax=21; mmax=21;
var n, m, k : i nt eger ;
B : array[ 0. . nmax, 0. . mmax] of - 1. . 255;

procedure Ci t est e;
var i , j : i nt eger ;
I nt r ar e : t ext ;
begin
25
assi gn( I nt r ar e, 'LAC.IN') ;
r eset ( I nt r ar e) ;
r eadl n( I nt r ar e, n, m) ;
for i : =1 to n do
begin
for j : =1 to mdo r ead( I nt r ar e, B[ i , j ] ) ;
r eadl n( I nt r ar e) ;
end;
cl ose( I nt r ar e) ;
end; { Ci t est e }

procedure Scr i e;
var I esi r e : t ext ;
begin
assi gn( I esi r e, 'LAC.OUT') ; r ewr i t e( I esi r e) ;
wr i t el n( I esi r e, k) ; cl ose( I esi r e) ;
end; { Scr i e }

procedure Chenar ;
{ Bor damt abl oul B cu - 1 }
var i , j : i nt eger ;
begin
for i : =0 to n+1 do
begin B[ i , 0] : =- 1; B[ i , m+1] : =- 1; end;
for j : =0 to m+1 do
begin B[ 0, j ] : =- 1; B[ n+1, j ] : =- 1; end;
end; { Chenar }

procedure Vopsest e( p, q, s : i nt eger ) ;
{ Vopsest e l acul ce cont i ne mi cr ozona ( p, q) i n cul oar ea s }
begin
if B[ p, q] =1 then
begin
{vopsi mmi cr ozona ( p, q) } B[ p, q] : =s;
{vopsi mmi cr ozona de sus } Vopsest e( p- 1, q, s) ;
{vopsi mmi cr ozona di n dr eapt a} Vopsest e( p, q+1, s) ;
{vopsi mmi cr ozona de j os } Vopsest e( p+1, q, s) ;
{vopsi mmi cr ozona di n st i nga} Vopsest e( p, q- 1, s) ;
end; { t hen }
end; { Vopsest e }

function Sunt Lacur i Nevopsi t e( var p, q : i nt eger ) :
bool ean;
{ Ret ur neaza t r ue daca exi st a cel put i n un l ac nevopsi t }
26
{ si coor donat el e p, q al e mi cr ozonei ce ar e cul oar ea 1 }
label 1;
var i , j : i nt eger ;
begin
Sunt Lacur i Nevopsi t e: =f al se;
for i : =1 t o n do
for j : =1 t o mdo
if B[ i , j ] =1 then
begin
Sunt Lacur i Nevopsi t e: =t r ue;
p: =i ; q: =j ;
goto 1;
end;
1: end; { Sunt Lacur i Nevopsi t e }

procedure Numar a;
{ Numar a l acur i l e de pe har t a di gi t al a }
var p, q, s : i nt eger ;
begin
s: =1;
while Sunt Lacur i Nevopsi t e( p, q) do
begin
s: =s+1;
Vopsest e( p, q, s) ;
end;
k: =s- 1;
end; { Numar a }

begin
Ci t est e;
Chenar ;
Numar a;
Scr i e;
end.

Evident, numrul de apeluri recursive ale procedurii Vopsest e
nu poate depi numrul de microzone ale hrii digitale. Prin urmare,
timpul de execuie a procedurii Vopsest e este T n m, iar spaiul
necesar de memorie n stiv V
s
n m. Conform restriciilor
problemei, dimensiunile imaginii n, m 20, deci timpul de execuie
T <<0,5 secunde, iar necesarul de memorie V
s
< 16 Koctei.

27
Sistemul roman

Se consider sistemul roman de numeraie. Acest sistem
utilizeaz cifrele I, V, X, L, C, D i M, care au urmtoarea
semnificaie: I 1; V 5; X 10; L 50; C 100; D 500; M
1000.
Fie
n i i
c c c c c L L
1 2 1 +
o succesiune de cifre, ce reprezint un
numr scris n sistemul roman de numeraie. Prin
) (
1 2 1 n i i
c c c c c Val L L
+
vom nota valoarea acestui numr, scris n
sistemul zecimal. De exemplu,
1 ) I ( = Val ;
2 ) II ( = Val ;
4 ) IV ( = Val ;
14 ) XIV ( = Val ;
19 ) XIX ( = Val ;
1963 ) MCMLXIII ( = Val .
n sistemul roman, valoarea numrului se calculeaz
parcurgnd irul de la stnga la dreapta, nsumnd valorile cifrelor
respective. Aceast regul are ns o excepie: dac n dreapta cifrei
curente
i
c se afl o cifr
1 + i
c cu o valoare mai mare, n suma
respectiv se include diferena ) ( ) (
1 i i
c Val c Val
+
. n continuare,
se trece, dac exist, la cifra
2 + i
c .
Exemplu:

14 ] 1 5 [ 10 )] I ( ) V ( [ ) X ( ) XIV ( = + = + = Val Val Val Val .

Expresiile, scrise n sistemul roman de numeraie, se definesc
conform urmtoarelor formule metalingvistice:
<Cifr roman> ::= I | V| X| L| C| D| M
<Numr roman> ::= <Cifr roman>{< Cifr roman>}
<Operator> ::= +| - |
*

<Expresie aritmetic roman> ::=
<Numr roman>{<Operator><Numr roman>}.
Elaborai un program care calculeaz valoarea expresiilor
aritmetice, scrise n sistemul roman de numeraie.
28
Date de intrare
Fiierul text ROMAN. I N conine pe o singur linie un ir de
caractere ce reprezint o expresie aritmetic, scris n sistemul roman
de numeraie.
Date de ieire
Fiierul text ROMAN. OUT va conine pe o singur linie un
numr ntreg valoarea expresiei aritmetice din fiierul de intrare,
scris n sistemul zecimal de numeraie.
Exemplu

ROMAN. I N ROMAN. OUT
I +I V- XI X
*
I I - 33
Restricii. irul din fiierul de intrare va conine cel mult 255
de caractere. Timpul de execuie nu va depi 0,5 secunde. Programul
va folosi cel mult 32 Megaoctei de memorie operativ. Fiierul surs
va avea denumirea ROMAN. PAS, ROMAN. C sau ROMAN. CPP.


Rezolvare

Pentru a calcula valoarea expresiei aritmetice scrise n sistemul
roman de numeraie, parcurgem irul de caractere de intrare i
transformm fiecare numr roman n sistemul zecimal. Numerele
zecimale le vom memora n tabloul Numer e, iar operatorii n
tabloul Oper at or i .
n continuare, parcurgnd tablourile respective, efectum
operaiile de nmulire, nlocuind operatorul
*
i operanzii respective
prin produsele calculate.
Operaiile de adunare i scdere le efectum parcurgnd nc o
dat tablourile Numer e i Oper at or i , care, evident, deja nu mai
conin operaiile de nmulire.

Program Si st emul Roman;
{ Si st emul r oman de numer at i e - Cl asel e 10- 12 }
29
const nmax=128;
{ numar ul maxi mal de numer e di n expr esi e }
var S : st r i ng;
{ expr esi a scr i sa i n si st emul r oman }
X : l ongi nt ;
{ val oar ea expr esi ei i n si st emul zeci mal }
Numer e : array[ 1. . nmax] of l ongi nt ;
{ numer el e di n expr esi e }
Oper at or i : array[ 1. . nmax] of char ;
{ oper at or i i di n expr esi e }

procedure Ci t est e;
var I nt r ar e : t ext ;
begin
assi gn( I nt r ar e, 'ROMAN.IN') ;
r eset ( I nt r ar e) ;
r eadl n( I nt r ar e, S) ;
cl ose( I nt r ar e) ;
end; { Ci t est e }

procedure Scr i e;
var I esi r e : t ext ;
begin
assi gn( I esi r e, 'ROMAN.OUT') ;
r ewr i t e( I esi r e) ;
wr i t el n( I esi r e, X) ;
cl ose( I esi r e) ;
end; { Scr i e }

function Val oar eaCi f r ei ( Ci f r a : char ) : l ongi nt ;
{ r et ur neaza val oar ea zeci mal a a ci f r ei r omane
Ci f r a }
begin
case Ci f r a of
'I' : Val oar eaCi f r ei : =1;
'V' : Val oar eaCi f r ei : =5;
'X' : Val oar eaCi f r ei : =10;
'L' : Val oar eaCi f r ei : =50;
'C' : Val oar eaCi f r ei : =100;
'D' : Val oar eaCi f r ei : =500;
'M' : Val oar eaCi f r ei : =1000;
end;
end; { Val oar eaCi f r ei }
30

function Val oar eaNumar ul ui ( T : st r i ng) : l ongi nt ;
{ r et ur neaza val oar ea zeci mal a numar ul ui r oman T}
var y : l ongi nt ;
i : i nt eger ;
begin
y: =0;
i : =1;
repeat
if i =l engt h( T) then
begin
y: =y+Val oar eaCi f r ei ( T[ i ] ) ;
i : =i +1;
end
else
begin
if Val oar eaCi f r ei ( T[ i ] ) >=
Val oar eaCi f r ei ( T[ i +1] ) then
begin
y: =y+Val oar eaCi f r ei ( T[ i ] ) ;
i : =i +1;
end { t hen }
else
begin
y: =y+Val oar eaCi f r ei ( T[ i +1] ) -
Val oar eaCi f r ei ( T[ i ] ) ;
i : =i +2;
end; { el se }
end;
until i >l engt h( T) ;
Val oar eaNumar ul ui : =y;
end; { Val oar eaNumar ul ui }

procedure Cr eazaTabl our i l e;
{ cr eaza t abl our i l e Numer e si Oper at or i }
var i , k : i nt eger ;
Oper : char ;
T : string;
begin
{ i ni t i al i zar ea t abl our i l or }
for k: = 1 to nmax do
begin Numer e[ k] : =0; Oper at or i [ k] : =' '; end;
i : =0; { i ndi ce pent r u si r ul S }
31
k: =0;
{ i ndi ce pent r u t abl our i l e Numer e si Oper at or i }
repeat
{ copi emnumar ul cur ent di n S i n T }
T: ='';
repeat
i : =i +1;
T: =T+S[ i ] ;
until ( i =l engt h( S) ) or ( S[ i +1] in
[ '+', '-', '*'] ) ;
k: =k+1;
Numer e[ k] : =Val oar eaNumar ul ui ( T) ;
if i <l engt h( S) t hen
begin
i : =i +1;
Oper at or i [ k] : =S[ i ] ;
end;
until i =l engt h( S) ;
end; { Cr eazaTabl our i l e }

procedure I nmul t est e;
var k, j : i nt eger ;
begin
k: =0;
repeat
k: =k+1;
if Oper at or i [ k] ='*' then
begin
{ cal cul ampr odusul }
Numer e[ k+1] : =Numer e[ k] *Numer e[ k+1] ;
{ excl udemoper anzi i si oper at or ul * }
for j : =k to nmax- 1 do
begin
Numer e[ j ] : =Numer e[ j +1] ;
Oper at or i [ j ] : =Oper at or i [ j +1] ;
end; { f or }
k: =k- 1;
end; { t hen }
until ( Oper at or i [ k] = ' ') ;
end; { I nmul t est e }

procedure AdunaScade;
var k : i nt eger ;
32
Semn : char ;
begin
X: =0;
Semn: ='+';
k: =0;
repeat
k: =k+1;
case Semn of
'+' : X: =X+Numer e[ k] ;
'-' : X: =X- Numer e[ k] ;
end; { case }
if ( Oper at or i [ k] <> ' ') then
Semn: =Oper at or i [ k] ;
until( Oper at or i [ k] = ' ') ;
end; { AdunaScade }

begin
Ci t est e;
Cr eazaTabl our i l e;
I nmul t est e;
AdunaScade;
Scr i e;
end.
33
Numere magice

Numrul natural x este considerat ca fiind unul magic, dac
numrul de repetri este acelai pentru fiecare cifr din componena
lui. Exemple:
1100; 81239; 756675; 454566.
Elaborai un program care, pentru orice numar natural n,
calculeaz cel mai mic numr magic x, n x .

Date de intrare. Fisierul text MAGI C. I N contine pe prima linie
numarul natural n.

Date de iesire. Fisierul text MAGI C. OUT va contine pe o
singura linie numarul magic x.

Exemplu.
MAGI C. I N MAGI C. OUT
2235 2244

Restrictii.
15
10 1 n . Timpul de executie nu va depasi 1
secunda. Programul va folosi cel mult 32 Megaoctei de memorie
operativ. Fisierul sursa va avea denumirea MAGI C. C, MAGI C. CPP
sau MAGI C. PAS.


Rezolvare

Soluia triviala a acestei probleme consta in verificarea
consecutiva a numerelor, ncepnd cu n. Evident, pentru a afla daca
un numr este magic, se determin numrul de repetri ale fiecrei
cifre din scrierea lui.
Aceasta soluie are astfel o complexitate liniara O(n) si se
ncadreaz n limita de timp doar pentru cazurile in care n nu
depete valoarea de cteva milioane. Pentru n avnd valori de pna
la 10
15
este necesar un algoritm mai rapid. Acesta se poate obine,
reducnd spaiul de cutare al numrului magic, astfel incit sa fie
34
verificata doar o mica parte din numerele consecutive ce depesc
valoarea lui n.
n acest scop, vom ncerca s construim un numr magic, care
sa se nceap cu primele i cifre ale numrului n.
Fie k numrul total de cifre ale lui n. Numrul magic cutat va
avea exact k cifre, deoarece orice numr compus numai din cifre de 9
(de exemplu 999, 99999 etc.) este numr magic. Prin urmare,
ntotdeauna exista un numr magic avnd acelai numr de cifre ca i
n i fiind mai mare sau egal cu acesta. Astfel, avnd un numr de k
cifre, cu primele i cifre fixate, ne ramne sa verificam daca e posibil
de ales ultimele k - i cifre ale sale in aa mod incit sa obinem un
numr magic cit mai mic posibil.
Fie cifre_diferite numrul de cifre diferite, coninute in primele
i cifre ale lui n, si fie max_repetari numrul maxim de repetri ale
unei din primele cifre i. Pentru orice m intre max_repetari si k
inclusiv, se va verifica daca e posibil de construit numrul magic
anterior astfel, incit fiecare cifra din componenta lui sa se repete de m
ori. Verificarea consta doar in probarea urmtoarelor condiii
evidente:
- k se divide cu m, deoarece k/m reprezint numrul de
cifre diferite si deci trebuie sa fie un numr ntreg;
- k/m trebuie sa fie mai mic sau egal cu 10, deoarece exista
doar 10 cifre diferite;
- k/m trebuie sa fie mai mare sau egal cu cifre_diferite.
Cu aceste 3 condiii satisfcute e posibil de construit un numr
magic, care ncepe cu primele i cifre ale lui n si in care fiecare cifra se
repeta de m ori. Pentru a construi acest numr, se numra de cte ori
se repeta fiecare cifra in primele i cifre ale lui n si pentru fiecare cifra
dintre ele se va numr de cte ori mai trebuie sa apar astfel incit
numrul de repetri ale sale n numrul construit sa fie m.
Pe lnga aceasta se vor mai aduga de cte m ori cele mai mici
(k/m cifre_diferite) cifre, care nu apar printre primele i cifre ale lui
n. Toate aceste cifre adugate trebuie sa fie plasate in ordine
cresctoare dup primele i cifre luate din n pentru a obine un numr
magic minim, care sa nceap cu primele i cifre ale lui n si in care
fiecare cifra sa se repete de m ori.
Dintre toate numerele magice construite pentru m intre
max_repetari si k inclusiv, se va lua cel mai mic numr i anume el
35
va reprezenta cel mai mic numr magic care ncepe cu primele i cifre
ale lui n.
Avnd toate aceste detalii descrise, ne rmne sa definim paii
principali ai algoritmului:
- Se verifica daca n este un numr magic si in caz afirmativ
se returneaz ca rezultat.
- Fie cifra(i) cifra de pe poziia i a lui n. Pentru fiecare i
de la k la 1, si pentru fiecare j de la cifra(i)+1 la 9 se verifica cu
metoda de mai sus daca e posibil de construit un numr magic de k
cifre, avnd primele i-1 cifre egale cu cifra(1), cifra(2), , cifra(i-1)
si avnd cifra de pe poziia i egala cu j. In caz afirmativ se va returna
cel mai mic numr magic construit, care respect aceasta proprietate.
Se observa ca complexitatea acestui algoritm este O(k
3
), unde k
este numrul de cifre ale lui n, asigurndu-se astfel respectarea
restriciilor problemei.

Program Magi c;
{ Cl asel e 10- 12 }
type Ci f r e = Ar r ay[ 0. . 9] of Shor t I nt ;
{ Past r eaza numar ul de apar i t i i a f i ecar ei ci f r e }
type Numar = Ar r ay[ 0. . 16] of Shor t I nt ;
{ Numar [ 0] va i ndi ca l ungi mea }

{ Ver i f i ca daca numar ul speci f i cat pr i n vect or ul
de ci f r e ' num' est e magi c }
function i smagi c( const num: Numar ) : Bool ean;
var di gs : Ci f r e;
c : Shor t I nt ;
i : I nt eger ;
begin
Fi l l Char ( di gs, si zeof ( di gs) , 0) ;
for i : = 1 to num[ 0] do I nc( di gs[ num[ i ] ] ) ;
c: = - 1;
for i : = 0 to 9 do begin
if di gs[ i ] > 0 t hen begin
if c < 0 then
c: = di gs[ i ]
else
i f di gs[ i ] <> c t hen exi t ( Fal se) ;
end;
end;
36
i smagi c : = Tr ue;
end;

{ i nt oar ce numar ul descr i s de vect or ul de
ci f r e ' num' }
function get num( const num: Numar ) : I nt 64;
var r es, zece : I nt 64;
i : i nt eger ;
begin
r es : = 0;
zece : = 1;
for i : = num[ 0] downto 1 do begin
r es : = r es+ num[ i ] *zece;
zece: = zece * 10;
end;
get num: = r es;
end;

{ ver i f i ca daca numar ul speci f i cat pr i n ci f r el e
l ui ' num' poat e compune un numar magi c
avi nd pr i mel e ' di gpos' ci f r e al e sal e f i xat e }
function sol ve( const num: Numar ; di gpos : I nt eger )
: I nt 64;
var
di gs : Ci f r e;
{ nr . de apar i t i i al e pr i mel or ' di gpos' ci f r e
di n numar }
newdi gs : Ci f r e;
{ ci t e ci f r e de f i ecar e t i p mai t r ebui e
de adaugat pent r u a obt i ne un numar magi c }
di f di gs : I nt eger ;
{ numar ul de ci f r e di f er i t e cont i nut e i n
pr i mel e ' di gpos' ci f r e di n num}
di gsLef t : I nt eger ;
mi nr ep : I nt eger ;
cur num : Numar ;
i , j , r eps: I nt eger ;
cur pos : I nt eger ;
best : I nt 64;
n : I nt eger ;
begin

n : = num[ 0] ; { numar ul de ci f r e al e numar ul ui }
37
di gsl ef t : = n- di gpos;
cur num: = num;
{ numar a numar ul de apar i t i i a f i ecar ei
di nt r e pr i mel e ' di gpos' ci f r e di n numar }
Fi l l Char ( di gs, si zeof ( di gs) , 0) ;
for i : =1 to di gpos do I nc( di gs[ num[ i ] ] ) ;
di f di gs : = 0;
mi nr ep : = 0;
{ gasest e numar ul maxi mde r epet i t i i a unei
ci f r e di nt r e pr i mel e ' di gpos' ci f r e }
for i : = 0 to 9 do begin
i f di gs[ i ] > 0 then begin
I nc( di f di gs) ;
if mi nr ep < di gs[ i ] then mi nr ep : = di gs[ i ] ;
end;
end;
{ Cel mai mi c numar magi c de ' n' ci f r e gasi t
car e i si ar e pr i mel e ' di gpos' ci f r e
al e numar ul ui ' num' . Daca e - 1 at unci
r ezul t a ca nu se poat e f or ma un numar
magi c i n acest e condi t i i . }
best : = - 1;
{ I ncear ca f or mar ea numar ul ui magi c i n
car e f i ecar e ci f r a car e apar e se r epet a
exact de ' r eps' or i . }
for r eps: =mi nr ep to n do begin
i f ( n mod r eps=0) and ( n di v r eps >= di f di gs)
and ( n di v r eps <= 10) then begin
Fi l l Char ( newdi gs, si zeof ( newdi gs) , 0) ;
{ Cal cul eaza ci t e apar i t i i noi mai
si nt necesar e pent r u ci f r el e dej a
exi st ent e i n nou numar
( adi ca pent r u pr i mel e ' di gpos' ci f r e) }
for i : = 0 to 9 do begin
i f di gs[ i ] > 0 then begin
newdi gs[ i ] : = r eps- di gs[ i ] ;
di gsl ef t : = di gsl ef t - newdi gs[ i ] ;
end;
end;
{ Cal cul eaza car e ci f r e neut i l i zat e vor
f i i ncl use i n numar ul magi c f or mat }
for i : = 0 to 9 do begin
if ( di gs[ i ] =0) and ( di gsl ef t >0) then begin
38
newdi gs[ i ] : = r eps;
di gsl ef t : = di gsl ef t - r eps;
end;
end;
{ Const r ui est e numar ul magi c }
cur pos: =di gpos;
for i : =0 to 9 do begin
if ( newdi gs[ i ] >0) then begi n
for j : =0 to newdi gs[ i ] - 1 do begin
I nc( cur pos) ;
cur num[ cur pos] : =i ;
end;
end;
end;
if ( best <0) or ( best > get num( cur num) )
then best : = get num( cur num) ;
end;
end;
sol ve : = best ;
end;

var f I nt r ar e, f I esi r e : Text ;
var n, r es : I nt 64;
num : Numar ;

t emp : Shor t I nt ;
i , u, k : I nt eger ;
ci f r a : Shor t I nt ;
begin
r es : = - 1;
Assi gn( f I nt r ar e, ' magi c. i n' ) ;
Reset ( f I nt r ar e) ;
Readl n( f I nt r ar e, n) ;
Cl ose( f I nt r ar e) ;
{ Const r ui est e vect or ul cu ci f r el e l ui ' n' }
num[ 0] : = 0;
while ( n > 0 ) do begin
I nc( num[ 0] ) ;
num[ num[ 0] ] : = n mod 10;
n: = n div 10;
end;
k : = num[ 0] ;
{ I nver seaza ci f r el e numar ul ui }
39
for i : = 1 to k div 2 do begin
t emp : = num[ i ] ;
num[ i ] : = num[ k- i +1] ;
num[ k- i +1] : = t emp;
end;
if i smagi c( num) then
r es : = get num( num)
else begin
{ I t er eaza asupr a ci f r el or l ui ' n' , i ncepi nd
cu ul t i ma ci f r a. La f i ecar e pas ' i ' ver i f i ca
daca se poat e f or ma un numar magi c di n ' n'
ci f r e avi nd pr i mel e i ci f r e f i xat e }
for i : = num[ 0] downto 1 do begin
ci f r a : = num[ i ] ;
for u : = ci f r a+1 to 9 do begin
num[ i ] : =u;
r es : = sol ve( num, i ) ;
if ( r es>=0) then break;
end;
if( r es>=0) then break;
num[ i ] : = ci f r a;
end;
end;
Assi gn( f I esi r e, ' magi c. out ' ) ;
Rewr i t e( f I esi r e) ;
Wr i t el n( f I esi r e, r es) ;
Cl ose( f I esi r e) ;
end.



40




Ziua 2. Clasele 79


Denumirea
problemei
Numrul
de puncte
alocat
problemei
Denumirea
fiierului
surs
Denumirea
fiierului
de intrare
Denumirea
fiierului
de ieire
Ppui 100
PAPUSI . PAS
PAPUSI . C
PAPUSI . CPP
PAPUSI . I N PAPUSI . OUT
Grupuri 100
GRUP. PAS
GRUP. C
GRUP. CPP
GRUP. I N GRUP. OUT
Chimie 100
CHI MI E. PAS
CHI MI E. C
CHI MI E. CPP
CHI MI E. I N CHI MI E. OUT
Total 300
- - -
41
Ppui

Cristina este un colecionar mptimit de ppui matrioka. De-
a lungul anilor ea a adunat o colecie impresionant, avnd mii de
astfel de ppui. Probabil, ai mai auzit de ppuile ruseti din lemn,
de diferite dimensiuni, care se pot imbrica una n alta.
Cea mai mare ppu
conine una un pic mai mica,
care la rndul ei conine una i
mai mic, i tot aa mai departe.
O mulime de astfel de ppui,
ascunse una n alta astfel nct
una singur cea mai mare
este vizibil, formeaz un set.
n desenul alturat este
prezentat un set desfcut de ppui matrioka.
Fiind o fire generoas, Cristina mai druia din cnd n cnd
unele ppui prietenilor, seturile respective devenind astfel
incomplete. ntr-o zi Cristina a desfcut toate seturile incomplete pe
care le avea i a amestecat ppuile respective. Cnd a ncercat s
refac seturile, ea s-a gndit c ar fi mai bine s fac o alt grupare a
ppuilor, astfel ca n final s aib ct mai puine seturi.
S notm ppuile Cristinei cu M
1
, M
2
, , M
i
, M
n
. Fiecare
ppu M
i
este caracterizat de diametrul d
i
i nlimea l
i
. O ppu
M
i
poate fi inclus ntr-o ppu M
j
dac d
i
< d
j
i l
i
< l
j
. Similar,
pentru ca ppuile M
a1
, M
a2
, , M
ak
s formeze un set, este necesar
ca d
a1
< d
a2
< <d
ak
i l
a1
< l
a2
< < l
ak
. Evident, o ppu poate
aparine doar unui singur set.
Elaborai un program care calculeaz numrul minim de seturi
m n care pot fi grupate toate ppuile din colecia Cristinei.
Date de intrare. Fiierul text PAPUSI . I N conine pe prima
linie un singur numr ntreg numrul de ppui n. Urmtoarele n
linii ale fiierului de intrare conin cte dou numere ntregi d
i
, l
i
,
separate prin spaiu. Numerele d
i
, l
i
din linia 1 + i a fiierului de
intrare descriu dimensiunile ppuii M
i
.
42
Date de ieire. Fiierul text PAPUSI . OUT va conine pe o
singur linie un numr ntreg numrul minim de seturi m.
Exemplu.
PAPUSI . I N PAPUSI . OUT
5
3 3
3 4
1 1
2 1
5 5
2

Restricii. 000 1 1 n ; 1000 , 1
i i
l d . Timpul de
execuie nu va depi 0,5 secunde. Programul va folosi cel mult 32
Megaoctei de memorie operativ. Fiierul surs va avea denumirea
PAPUSI . PAS, PAPUSI . C sau PAPUSI . CPP.

Rezolvare

1. Ordonm ppuile cresctor dup una din dimensiuni, de
exemplu, d. Ordinea dup cealalt dimensiune nu este important.
Iniial toate ppuile sunt considerate desfcute, iar mulimea de
ppui cercetate i grupate este vida. Ppuile sortate le vom nota cu
M
1
, M
2
, M
i
, , M
n
.
2. La fiecare pas i ncercm s includem ppua M
i
n colecia
de ppui cercetate, n mod optim.
Presupunem c ppuile cercetate pna la pasul i-1 snt M
1
, ,
M
i-1
. Aceste ppui snt deja grupate in mi-1 grupuri. Sa notam aceste
grupuri cu G
i-1,1
, G
i-1,2
, G
i-1,m(i-1)
. Din fiecare grup G
i-1,j
ne
intereseaz doar ppua cea mai mare, s-o notam M
g(i-1,j)
, si
dimensiunile sale d
g(i-1,j)
, l
g(i-1,j)
.
Vom cuta grupul G
i,k
, cu proprietatea ca
l
g(i-1,k)
= max [l
g(i-1,j)
, astfel nct l
g(i-1,j)
< l
i
, d
(g-1,j)
< d
i
, j = 1, ..., m
i-1
].
Daca G
i,k
exista, vom include n acest grup papua curenta M
i
.
n acest caz m
i
= m
i-1
. n caz contrar, ppua M
i
va iniia formarea
unui grup nou, iar m
i
= m
i-1
+1.

3. Dup cei n pai, m = m
n
, numrul minim de grupuri cerut.
43

Program Papusi ;
type Papusa = record
x, y : i nt eger ;
end;
var nDr , nSet : i nt eger ;
dr Vect , set Vect : array[ 1. . 1000] of Papusa;
I nt r ar e, I esi r e : t ext ;

procedure Ci t est e;
var i : i nt eger ;
begin
assi gn( I nt r ar e, ' PAPUSI . I N' ) ;
r eset ( I nt r ar e) ;
r eadl n( I nt r ar e, nDr ) ;
for i : =1 to nDr do
r eadl n( I nt r ar e, dr Vect [ i ] . x, dr Vect [ i ] . y) ;
cl ose( I nt r ar e) ;
end; { Ci t est e }

procedure Sor t ;
{ Sor t ampapusel e cr escat or dupa x pr i n met oda bul el or }
var i : i nt eger ;
sunt Per mut ar i : bool ean;
aux : Papusa;
begin
sunt Per mut ar i : = t r ue;
while sunt Per mut ar i do
begin
sunt Per mut ar i : = f al se;
for i : = 1 to nDr - 1 do
if dr Vect [ i ] . x > dr vect [ i +1] . x
then begin
aux : = dr Vect [ i ] ;
dr Vect [ i ] : = dr Vect [ i +1] ;
dr Vect [ i +1] : = aux;
sunt Per mut ar i : = t r ue;
end;
end;
end; { Sor t }

procedure Gasest eSet ur i ;
var i , j , posOpt i ma : i nt eger ;
begin
44
nSet : = 0;
for i : = 1 to nDr do
begin
{ caut amset ul cy y maxi mce ar i ncapea i n papusa i }
posOpt i ma : = - 1;
for j : = 1 to nSet do
if ( set Vect [ j ] . x < dr Vect [ i ] . x) and
( set Vect [ j ] . y < dr Vect [ i ] . y)
{ set ul set Vect [ j ] i ncape i n cur ent }
then if ( posOpt i ma = - 1) or
( set Vect [ posOpt i ma] . y < set Vect [ j ] . y)
{ amgasi t un set mai bun de i ncl us i n papusa i }
then posOpt i ma : = j ;
if posOpt i ma <> - 1
{ i ncl udemset ul posOpt i ma i n papusa i }
then set Vect [ posOpt i ma] : = dr Vect [ i ]
else begin
{ papusa cur ent a devi ne un i ni t i at or de set nou }
nSet : = nSet +1;
set Vect [ nSet ] : = dr Vect [ i ] ;
end;
end;
end;

procedure Scr i e;
begin
assi gn( I esi r e, ' PAPUSI . OUT' ) ; r ewr i t e( I esi r e) ;
wr i t el n( I esi r e, nSet ) ; cl ose( I esi r e) ;
end;

begin
Ci t est e;
Sor t ;
Gasest eSet ur i ;
Scr i e;
end.

Din analiza textelor procedurilor Sor t i Gasest eSet ur i
se observ c complexitatea programului este O(n
2
). Evident, pentru
000 1 1 n , timpul de execuie va fi cu mult mai mic ca 0,5
secunde.

45
Grupuri

Firma ABC-Soft are m angajai i dispune de o reea
performant de calculatoare. n cadrul reelei, fiecare utilizator este
identificat printr-un numr ntreg. Serverul reelei gestioneaz un disc
rigid, directorul rdcin al cruia are n directoare. Pentru fiecare
director exist o list n care snt indicai utilizatorii ce au acces la
fiierele din directorul respectiv. n general, un utilizator poate avea
acces la unul sai la mai multe directoare.
Administratorul reelei dorete s divizeze mulimea de
utilizatori n grupuri distincte. Doi utilizatori vor fi inclui n acelai
grup doar n cazul n care ambii au acces la aceleai directoare.
Elaborai un program care, cunoscnd listele de utilizatori
pentru fiecare director de pe discul rigid, calculeaz numrul k de
grupuri de utilizatori.

Date de intrare. Fiierul text GRUP. I N conine pe prima linie
dou numere n i m. Numrul n reprezint numrul de directoare,
iar m numrul de utilizatori. Urmtoarele n linii ale fiierului de
intrare conin listele de utilizatori pentru fiecare director, cte o list
pe linie. La nceputul liniei 1 + i este scris numrul ntreg m
i

numrul de utilizatori care au acces la fiierele din directorul i. n
continuare, pe aceast linie snt scrise m
i
numere, reprezentnd
numerele de identificare ale utilizatorilor respectivi. Toate numerele
snt separate prin spaiu.

Date de ieire. Fiierul text GRUP. OUT va conine pe o singur
linie un numr ntreg numrul k de grupuri de utilizatori.
46
Exemplu.
GRUP. I N GRUP. OUT
6 5
2 1 4
3 4 1 5
5 4 5 1 3 2
1 5
3 2 5 3
2 3 2
3


Restricii. 00 1 1 n ; 00 1 1 m ; 00 1 1
i
m ,
n i ..., , 3 , 2 , 1 = . Numerele de identificare ale utilizatorilor vor fi
cuprinse ntre 1 i m. Programul va folosi cel mult 32 Megaoctei de
memorie operativ. Timpul de execuie nu va depi 0,5 secunde.
Fiierul surs va avea denumirea GRUP. PAS, GRUP. C sau GRUP. CPP.

Rezolvare

Introducem n studiu tabloul T, care are m rnduri i n coloane.
Elementul T[ i , j ] al acestui tablou va avea valoarea t r ue dac
utilizatorul i are acces la directorul j i f al se n caz contrar.
Evident, elementele tabloului respectiv pot fi calculate n procesul
citirii datelor din fiierul de intrare.
n continuare, pentru a forma un grup, comparm element cu
element rndurile tabloului T, selectndu-le pe cele care coincid.
Utilizatorii care au format deja un grup, snt exclui din calcule prin
nscrierea valorii t r ue n elementele tabloului auxiliar Excl us.

Program Gr upur i ;
{ Cl asel e 07 - 09 }
const nmax=100;
mmax=100;
var T: array [ 1. . mmax, 1. . nmax] of bool ean;
Excl us : array [ 1. . mmax] of bool ean;
n, m, k : i nt eger ;

procedure Ci t est e;
{ I ni t al i zeaza t abl our i l e T si Excl us }
47
{ Ci t est e dat el e de i nt r ar e }
var i , j , mi , p : i nt eger ;
I nt r ar e : t ext ;
begin
assi gn( I nt r ar e, 'GRUP.IN') ;
r eset ( I nt r ar e) ;
r eadl n( I nt r ar e, n, m) ;
for i : =1 to mdo
for j : = 1 to n do T[ i , j ] : =f al se;
for i : =1 to mdo Excl us[ i ] : =f al se;
for i : = 1 to n do
begin
r ead( I nt r ar e, mi ) ;
for j : = 1 to mi do
begin
r ead( I nt r ar e, p) ;
T[ p, i ] : =t r ue;
end; { f or j }
end; { f or i }
cl ose( I nt r ar e) ;
end; { Ci t est e }

function Coi nci d( i , j : i nt eger ) : bool ean;
{ Ret ur neaza t r ue daca r i ndur i l e i , j al e
t abl oul ui T coi nci d }
var p : i nt eger ;
q : bool ean;
begin;
q: = t r ue;
for p: =1 to n do
q: =q and ( T[ i , p] =T[ j , p] ) ;
Coi nci d: =q;
end; { Coi nci d }

procedure Numar aGr upur i ;
{ Cal cul eaza numar ul de gr upur i }
var i , j : i nt eger ;
begin
k: =0;
for i : =1 to mdo
begin
if not Excl us[ i ] then
begin
48
k: =k+1;
Excl us[ i ] : =t r ue;
for j : =i +1 to mdo
Excl us[ j ] : =Coi nci d( i , j ) ;
end; { t hen }
end; { f or }
end; { Numar aGr upur i }

procedure Scr i e;
var I esi r e : t ext ;
begin
assi gn( I esi r e, 'GRUP.OUT') ;
r ewr i t e( I esi r e) ;
wr i t el n( I esi r e, k) ;
cl ose( I esi r e) ;
end; { Scr i e }

begin
Ci t est e;
Numar aGr upur i ;
Scr i e;
end.

Din analiza textului procedurii Numar aGr upur i se observ
c ea conine dou cicluri imbricate, n interiorul crora se execut
apelul funciei Coi nci d. Aceast funcie, are, la rndul ei, nc un
ciclu. Prin urmare, numrul de operaii, cerut de programul Gr upur i
este de ordinul n m
2
. Evident, pentru 00 1 1 n i 00 1 1 m ,
timpul de execuie nu va depi 0,5 secunde.

49
Chimie

Profesorul de chimie a pregtit un test de evaluare a
cunotinelor. Fiecare test reprezint o formula n care apar notaiile
anumitor elemente chimice. Pentru fiecare element chimic, notaiif
cruia apare n formul, elevul trebuie s calculeze numrul respectivi
de atomi.
n scopuri didactice, formulele chimice se definesc cu ajutorul
urmtoarelor formule metalingvistice:
<Cifr> ::= 1234567890
<Cifr nenul> ::= 123456789
<Numr> ::= <Cifr nenul>{<Cifr>}
<Liter mare> ::= ABCDEFGHI J KLMNOP
QRSTUVWXYZ
<Liter mic> ::= abcdef ghi j kl mno
pqr st uvwxyz
<Atom> ::= <Liter mare>[<Liter mic>]
<Molecul> ::= <Atom>[<Numr>]{<Atom>[<Numr>]}
<Formul> ::=
[<Numr>]<Molecul>{+[<Numr>]<Molecul>}

Exemple:
C2H5OH+3O2+3Si O2 3Si O2+2CO+3H2O+O2
99C2H5OH+3CuO2
n formulele chimice unitatea gramaticala <Numr> are
semnificaia de multiplicator, indicnd numrul de atomi sau de
molecule, iar semnul + indic o reacie chimic. Amintim c n
cazul reaciilor chimice atomii se pot recombina n molecule noi, ns
ei nu apar i nici nu dispar. Evident, cunoscnd formula chimic,
pentru fiecare element putem calcula numrul respectiv de atomi. De
exemplu, n formula C2H5OH+3O2+3Si O2 sunt 2 atomi de C; 6
atomi de H; 13 atomi de O; 3 atomi de Si .
50
Elaborai un program care calculeaz numrul de atomi pentru
fiecare din elementele chimice ce apar ntr-o formul.
Date de intrare. Fiierul text CHI MI E. I N conine pe o singur
linie un ir de caractere ce reprezint o formul chimic.
Date de ieire. Fiierul text CHI MI E. OUT va conine pe prima
linie un numr ntreg k numrul de elemente chimice ce apar n
formul. Fiecare din urmtoarele k linii va conine notaia elementului
chimic i numrul respectiv de atomi, separi prin spaiu. Ordinea
apariiei notaiilor elementelor chimice este arbitrar.

Exemplu.
CHI MI E. I N CHI MI E. OUT
C2H5OH+3O2+3Si O2 4
C 2
H 6
O 13
Si 3


Restricii. irul din fiierul de intrare va avea cel mult 250
caractere. O formul va avea cel mult 10000 atomi. Timpul de
execuie nu va depi 1 secund. Programul va folosi cel mult 32
Megaoctei de memorie operativ. Fiierul surs va avea denumirea
CHI MI E. PAS, CHI MI E. C sau CHI MI E. CPP.

Rezolvare

Pentru a calcula numrul de atomi, parcurgem formula chimic
de la dreapta la stnga. Vom numi numrul aflat n partea dreapt a
unui atom multiplicator local, iar cel din partea stng a unei molecule
multiplicator global. Menionm, c multiplicatorii globali se
identific foarte uor, ntruct n faa lor se afl semnul +, cu
excepia celui de la nceputul formulei.
Iniial, ambii multiplicatori au valoarea 1. n procesul
parcurgerii, memorm multiplicatorul local, care ne indic numrul
de atomi din faa lui. Daca molecula are n fa un multiplicator
global, nmulim numrul de atomi din molecula respectiv cu
valoarea acestuia.
51

Program Chi mi e; { Cl asel e 07- 09 }
const Li t er e_mi ci : set of char = [ ' a' . . ' z' ] ;
const Li t er e_mar i : set of char = [ ' A' . . ' Z' ] ;
const ci f r e : set of char = [ ' 0' . . ' 9' ] ;
var f I nt r ar e, f I esi r e : Text ;
var s : st r i ng;
n : I nt eger ;
{ r epr ezi nt a l i psa l i t er i mi ci i n numel e at omul ui }
const ni mi c = succ( ' z' ) ;
{ vect or pent r u a past r a numar ul de apar i t i i a
at omi l or }
var C : Array[ ' A' . . ' Z' , ' a' . . ni mi c] of I nt eger ;


procedure numar a_i n_mol ecul a( i , j : I nt eger ;
m: I nt eger ) ;
{ numar a at omi i i nt r - o mol ecul a, si i i i nmul t est e
cu mul t i pl i cat or ul m}
{ mr epr ezi nt a mul t i pl i cat or ul gl obal }
var k : I nt eger ;
numar , exponent : I nt eger ;
begin
k: =j ; { i ncepemde l a capat spr e i nceput };
while ( k>=i ) do begin
numar : = 1; { r epr ezi nt a mul t i pl i cat or ul
di n f at a el ement ul ui }
{ Ci t est e mul t i pl i cat or ul }
if s[ k] in ci f r e then
begin
numar : =0; exponent : = 1;
while s[ k] i n ci f r e do begin
numar : = numar + ( or d( s[ k] ) -
or d( ' 0' ) ) *exponent ;
exponent : = exponent * 10;
dec( k) ;
end;
end;
if ( s[ k] in l i t er e_mi ci ) then begin
{cr est e cu mul t i pl i cat or _gl obal *
mul t i pl i cat or _l ocal }
i nc( C[ s[ k- 1] , s[ k] ] , m* numar ) ;
Dec( k, 2) ;
52
continue;
end;
if ( s[ k] in l i t er e_mar i ) then begin
{cr est e cu mul t i pl i cat or _gl obal *
mul t i pl i cat or _l ocal }
i nc( C[ s[ k] , ni mi c] , m* numar ) ;
Dec( k) ;
continue;
end;
end;
end;

procedure numar a_i n_mol ecul a_cu_mul t i pl i cat or ( i , j :
I nt eger ) ;
{ numar a at omi i i nt r - o mol ecul a cu mul t i pl i cat or
i n f at a }
var numar : I nt eger ;
begin
numar : =0;
while ( s[ i ] in ci f r e) do begin
numar : = ( numar * 10) + or d( s[ i ] ) -
or d( ' 0' ) ;
i nc( i ) ;
end;
if numar =0 then numar : = 1;
numar a_i n_mol ecul a( i , j , numar ) ;
end;

procedure numar a_i n_f or mul a( i , j : I nt eger ) ;
{ Numar a at omi i i nt r o f or mul a i nt r eaga }
var u, k : I nt eger ;
begin
u : = 1;
for k: = 1 to n do begin
if s[ k] = ' +' then begin
numar a_i n_mol ecul a_cu_mul t i pl i cat or ( u, k- 1) ;
u : = k+1;
end;
end;
numar a_i n_mol ecul a_cu_mul t i pl i cat or ( u, n) ;
end;

var u, v: char ;
53
count : I nt eger ;
begin
{ I ni t i al i zar e }
Fi l l Char ( C, si zeof ( C) , 0) ;
{ Ci t i r e Dat e }
Assi gn( f I nt r ar e, ' chi mi e. i n' ) ; Reset ( f I nt r ar e) ;
Readl n( f I nt r ar e, s) ; Cl ose( f I nt r ar e) ;
{ Pr ocesar e }
n : = l engt h( s) ;
numar a_i n_f or mul a( 1, n) ;
{ Scr i er e dat e }
Assi gn( f I esi r e, ' chi mi e. out ' ) ; Rewr i t e( f I esi r e) ;
{ Det er mi na Numar ul de el ement e chi mi ce di st i nct e }
count : = 0;
for u: =' A' to ' Z' do begin
for v: =' a' to ni mi c do begin
if C[ u, v] >0 then I nc( count ) ;
end;
end;
Wr i t el n( f I esi r e, count ) ;
{ scr i e numar ul de el ement e chi mi ce }
for u: =' A' t o ' Z' do begin
for v: =' a' to ni mi c do begin
if C[ u, v] >0 then begin
wr i t e( f I esi r e, u) ;
if v<>ni mi c then write( f I esi r e, v) ;
wr i t el n( f I esi r e, ' ' , C[ u, v] ) ;
end; end; end;
Cl ose( f I esi r e) ;
end.

54
Ziua 2. Clasele 1012


Denumirea
problemei
Numrul
de puncte
alocat
problemei
Denumirea
fiierului
surs
Denumirea
fiierului
de intrare
Denumirea
fiierului
de ieire
Ppui 100
PAPUSI . PAS
PAPUSI . C
PAPUSI . CPP
PAPUSI . I N PAPUSI . OUT
Grupuri 100
GRUP. PAS
GRUP. C
GRUP. CPP
GRUP. I N GRUP. OUT
Chimie 100
CHI MI E. PAS
CHI MI E. C
CHI MI E. CPP
CHI MI E. I N CHI MI E. OUT
Total 300
- - -
55
Ppui

Cristina este un colecionar mptimit de ppui matrioka. De-
a lungul anilor ea a adunat o colecie impresionant, avnd mii de
astfel de ppui. Probabil, ai mai auzit de ppuile ruseti din lemn,
de diferite dimensiuni, care se pot imbrica una n alta.
Cea mai mare ppu
conine una un pic mai mica,
care la rndul ei conine una i
mai mic, i tot aa mai departe.
O mulime de astfel de ppui,
ascunse una n alta astfel nct
una singur cea mai mare
este vizibil, formeaz un set.
n desenul alturat este
prezentat un set desfcut de ppui matrioka.
Fiind o fire generoas, Cristina mai druia din cnd n cnd
unele ppui prietenilor, seturile respective devenind astfel
incomplete. ntr-o zi Cristina a desfcut toate seturile incomplete pe
care le avea i a amestecat ppuile respective. Cnd a ncercat s
refac seturile, ea s-a gndit c ar fi mai bine s fac o alt grupare a
ppuilor, astfel ca n final s aib ct mai puine seturi.
S notm ppuile Cristinei cu M
1
, M
2
, , M
i
, M
n
. Fiecare
ppu M
i
este caracterizat de diametrul d
i
i nlimea l
i
. O ppu
M
i
poate fi inclus ntr-o ppu M
j
dac d
i
< d
j
i l
i
< l
j
. Similar,
pentru ca ppuile M
a1
, M
a2
, , M
ak
s formeze un set, este necesar
ca d
a1
< d
a2
< <d
ak
i l
a1
< l
a2
< < l
ak
. Evident, o ppu poate
aparine doar unui singur set.
Elaborai un program care calculeaz numrul minim de seturi
m n care pot fi grupate toate ppuile din colecia Cristinei.
Date de intrare. Fiierul text PAPUSI . I N conine pe prima
linie un singur numr ntreg numrul de ppui n. Urmtoarele n
linii ale fiierului de intrare conin cte dou numere ntregi d
i
, l
i
,
separate prin spaiu. Numerele d
i
, l
i
din linia 1 + i a fiierului de
intrare descriu dimensiunile ppuii M
i
.
56
Date de ieire. Fiierul text PAPUSI . OUT va conine pe o
singur linie un numr ntreg numrul minim de seturi m.
Exemplu.
PAPUSI . I N PAPUSI . OUT
5
3 3
3 4
1 1
2 1
5 5
2

Restricii. 000 1 1 n ; 1000 , 1
i i
l d . Timpul de
execuie nu va depi 0,5 secunde. Programul va folosi cel mult 32
Megaoctei de memorie operativ. Fiierul surs va avea denumirea
PAPUSI . PAS, PAPUSI . C sau PAPUSI . CPP.

Rezolvare

1. Ordonm ppuile cresctor dup una din dimensiuni, de
exemplu, d. Ordinea dup cealalt dimensiune nu este important.
Iniial toate ppuile sunt considerate desfcute, iar mulimea de
ppui cercetate i grupate este vida. Ppuile sortate le vom nota cu
M
1
, M
2
, M
i
, , M
n
.
2. La fiecare pas i ncercm s includem ppua M
i
n colecia de
ppui cercetate, n mod optim.
Presupunem c ppuile cercetate pna la pasul i-1 snt M
1
, ,
M
i-1
. Aceste ppui snt deja grupate in mi-1 grupuri. Sa notam aceste
grupuri cu G
i-1,1
, G
i-1,2
, G
i-1,m(i-1)
. Din fiecare grup G
i-1,j
ne
intereseaz doar ppua cea mai mare, s-o notam M
g(i-1,j)
, si
dimensiunile sale d
g(i-1,j)
, l
g(i-1,j)
.
Vom cuta grupul G
i,k
, cu proprietatea ca
l
g(i-1,k)
= max [l
g(i-1,j)
, astfel nct l
g(i-1,j)
< l
i
, d
(g-1,j)
< d
i
, j = 1, ..., m
i-1
].
Daca G
i,k
exista, vom include n acest grup papua curenta M
i
.
n acest caz m
i
= m
i-1
. n caz contrar, ppua M
i
va iniia formarea
unui grup nou, iar m
i
= m
i-1
+1.

3. Dup cei n pai, m = m
n
, numrul minim de grupuri cerut.
57

Program Papusi ;
type Papusa = record
x, y : i nt eger ;
end;
var nDr , nSet : i nt eger ;
dr Vect , set Vect : array[ 1. . 1000] of Papusa;
I nt r ar e, I esi r e : t ext ;

procedure Ci t est e;
var i : i nt eger ;
begin
assi gn( I nt r ar e, ' PAPUSI . I N' ) ; r eset ( I nt r ar e) ;
r eadl n( I nt r ar e, nDr ) ;
for i : =1 to nDr do
r eadl n( I nt r ar e, dr Vect [ i ] . x, dr Vect [ i ] . y) ;
cl ose( I nt r ar e) ;
end; { Ci t est e }

procedure Sor t ;
{ Sor t ampapusel e cr escat or dupa x pr i n met oda bul el or }
var i : i nt eger ;
sunt Per mut ar i : bool ean;
aux : Papusa;
begin
sunt Per mut ar i : = t r ue;
while sunt Per mut ar i do
begin
sunt Per mut ar i : = f al se;
for i : = 1 to nDr - 1 do
if dr Vect [ i ] . x > dr vect [ i +1] . x
then begin
aux : = dr Vect [ i ] ;
dr Vect [ i ] : = dr Vect [ i +1] ;
dr Vect [ i +1] : = aux;
sunt Per mut ar i : = t r ue;
end;
end;
end; { Sor t }

procedure Gasest eSet ur i ;
var i , j , posOpt i ma : i nt eger ;
begin
nSet : = 0;
58
for i : = 1 to nDr do
begin
{ caut amset ul cy y maxi mce ar i ncapea i n papusa i }
posOpt i ma : = - 1;
for j : = 1 to nSet do
if ( set Vect [ j ] . x < dr Vect [ i ] . x) and
( set Vect [ j ] . y < dr Vect [ i ] . y)
{ set ul set Vect [ j ] i ncape i n cur ent }
then if ( posOpt i ma = - 1) or
( set Vect [ posOpt i ma] . y < set Vect [ j ] . y)
{ amgasi t un set mai bun de i ncl us i n papusa i }
then posOpt i ma : = j ;
if posOpt i ma <> - 1
{ i ncl udemset ul posOpt i ma i n papusa i }
then set Vect [ posOpt i ma] : = dr Vect [ i ]
else begin
{ papusa cur ent a devi ne un i ni t i at or de set nou }
nSet : = nSet +1;
set Vect [ nSet ] : = dr Vect [ i ] ;
end;
end;
end;

procedure Scr i e;
begin
assi gn( I esi r e, ' PAPUSI . OUT' ) ; r ewr i t e( I esi r e) ;
wr i t el n( I esi r e, nSet ) ; cl ose( I esi r e) ;
end;

begin
Ci t est e;
Sor t ;
Gasest eSet ur i ;
Scr i e;
end.

Din analiza textelor procedurilor Sor t i Gasest eSet ur i
se observ c complexitatea programului este O(n
2
). Evident, pentru
000 1 1 n , timpul de execuie va fi cu mult mai mic ca 0,5
secunde.

59
Grupuri

Firma ABC-Soft are m angajai i dispune de o reea
performant de calculatoare. n cadrul reelei, fiecare utilizator este
identificat printr-un numr ntreg, format din ase cifre zecimale.
Serverul reelei gestioneaz un disc rigid, directorul rdcin al cruia
are n directoare. Pentru fiecare director exist o list n care snt
indicai utilizatorii ce au acces la fiierele din directorul respectiv. n
general, fiecare utilizator poate avea acces la unul sau la mai multe
directoare.
Administratorul reelei dorete s divizeze mulimea de
utilizatori n grupuri distincte. Doi utilizatori vor fi inclui n acelai
grup doar n cazul n care ambii au acces la aceleai directoare.
Elaborai un program care, cunoscnd listele de utilizatori
pentru fiecare director de pe discul rigid, calculeaz numrul k de
grupuri de utilizatori.
Date de intrare. Fiierul text GRUP. I N conine pe prima linie
un singur numr ntreg numrul de directoare n. Urmtoarele n linii
ale fiierului de intrare conin listele de utilizatori, cte o list pe linie.
La nceputul liniei 1 + i este scris numrul ntreg m
i
numrul de
utilizatori care au acces la fiierele din directorul i. n continuare, pe
aceast linie snt scrise m
i
numere, reprezentnd numerele de
identificare ale utilizatorilor respectivi. Toate numerele snt separate
prin spaiu.
Date de ieire. Fiierul text GRUP. OUT va conine pe o singur
linie un numr ntreg numrul k de grupuri de utilizatori.
60
Exemplu.
GRUP. I N GRUP. OUT
5
2 010000 020000
3 020000 010000 999999
3 020000 999999 010000
1 999999
2 030000 999999
3

Restricii. 00 1 1 n ; 000 0 1 1 m ; 000 10 1
i
m ,
n i ..., , 3 , 2 , 1 = . Numerele de identificare vor fi cuprinse ntre 1 i
999999, fiind completate, n caz de necesitate, cu zerouri
nesemnificative pn la ase cifre. Timpul de execuie nu va depi 3
secunde. Programul va folosi cel mult 32 Megaoctei de memorie
operativ. Fiierul surs va avea denumirea GRUP. PAS, GRUP. C sau
GRUP. CPP.

Rezolvare

Pentru nceput, vom ncerca s utilizm algoritmul elaborat
pentru problema cu acelai nume, propus elevilor din clasele de
gimnaziu. Amintim, c complexitatea algoritmului respectiv este O(
n m
2
). La prima vedere, conform restriciilor din enunul problemei
propuse elevilor din clasele de liceu, numrul de operaii cerut de un
acest algoritm ar fi de ordinul
10 2 4 4
10 10 10 10 = . ns, la o
analiz mai atent a programului PASCAL, elaborat anterior (clasele
79), se observ, c pentru a putea prelucra i identificatorii formai
din ase cifre, tablourile T i Excl us trebuie redefinite dup
cum urmeaz:

var T: array [ 1. . 999999, 1. . 100] of bool ean;
Excl us : array [ 1. . 999999] of bool ean;

Evident, necesarul de memorie va fi de ordinul a 100
Megaoctei, fapt ce contravine restriciilor din enunul problemei. Mai
mult ca att, numrul de operaii cerut de un astfel de algoritm va fi de
61
ordinul
14 2 6 6
10 10 10 10 = , fapt care agraveaz i mai mult
situaia.
Creterea de 000 10 de ori a timpului cerut de algoritm se
explic prin faptul c cel puin 99% din rndurile tabloului T
(conform restriciilor problemei n reea pot fi cel mult 10000 de
utilizatori, pe cnd tabloul T are 999999 de rnduri) vor fi umplute
doar cu valori de f al se. Evident, prelucrarea unor astfel de rnduri
reprezint un consum inutil de timp.
Pentru a economisi memoria i a reduce timpul de calcul, vom
utiliza structuri dinamice de date, alocnd memorie doar pentru acele
rnduri ale tabloului T, crora le corespund utilizatori de reea. n
programul de mai jos se utilizeaz urmtoarele structuri de date:
tabloul usUi d[ 1. . 999999] acest tablou conine cte
un indicator de adres pentru fiecare potenial utilizator; utilizatorii
inexisteni au n componentele respective valoarea ni l ;
tabloul us[ 1. . 10000] fiecare component a acestui
tablou reprezint un potenial utilizator i conine un indicator la lista
de dosare ale utilizatorului respectiv (un rnd al tabloului T);
tipul de date ar r ay[ 1. . 100] of bool ean acest
tip reprezint rndurile tabloului T, care vor fi create dinamic cu
ajutorul procedurii new.
Utilizarea acestor structuri de date ne permite s ne ncadrm n
spaiul de memorie de circa 10 Megaoctei i s reducem
complexitatea problemei de la 10
14
pn la 10
10
. ns, chiar i prin
utilizarea structurilor dinamice de date, timpul cerut de program
rmne foarte mare.
Pentru a reduce timpul de calcul, vom sorta utilizatorii
memorai n tabloul us n aa fel, nct utilizatorii cu aceleai drepturi
de acces s fie plasai pe poziii consecutive. n programul de mai jos
sortarea se realizeaz cu ajutorul funciei Compar a.
n cazul utilizrii unui algoritm simplu de sortare, de exemplu,
prin metoda bulelor, complexitatea rezultat ar fi tot de O( n m
2
).
ns, dac folosim un algoritm de sortare mai sofisticat, de tipul O(
) log(m m ), timpul cerut de program va fi de ordinul 10
4
10
2
10
= 10
7
, valoare care se ncadreaz uor n timpul de execuie de 3
62
secunde. n programul de mai jos este implementat algoritmul de
sortare prin interclasare (merge sort).

Program Gr up;
/ / cl asel e 10- 12

const nmax = 100;
mmax = 10000;
maxUi d = 999999;
tzpe
User Type = array[ 1. . nmax] of bool ean;
User Pt r = ^User Type;
User Ar r ay = array[ 1. . mmax] of User Pt r ;

var n, m, nr Gr up : i nt eger ;
{ vect or de user i cu i ndi cel e semni f i cand user i d- ul }
usUi d : array[ 1. . maxUi d] of User Pt r ;
/ / vect or de user i compact at
us : User Ar r ay;
i nt r ar e, i esi r e : t ext ;

procedure AdaugaDi r LaUser ( ui d : l ongi nt ; di d :
i nt eger ) ;
{i nr egi st r eaza dr ept ul ut i l i zat or ul ui ui d de a accesa di r ect or ul di d}
var i : i nt eger ;
begin
if usUi d[ ui d] = nil
then begin
new( usUi d[ ui d] ) ;
for i : = 1 to n do
usUi d[ ui d] ^[ i ] : = f al se;
end;
usUi d[ ui d] ^[ di d] : = t r ue;
end;

procedure Ci t i r e;
{ ci t est e f i si er ul de i nt r ar e si const r ui est e vect or ul usUi d }
var i , j , mi : i nt eger ;
ui d : l ongi nt ;
begin
assi gn( i nt r ar e, ' GRUP. I N' ) ; r eset ( i nt r ar e) ;
r eadl n( i nt r ar e, n) ;
for i : =1 to n do
begin
63
r ead( i nt r ar e, mi ) ;
for j : =1 to mi do
begin
r ead( i nt r ar e, ui d) ;
AdaugaDi r LaUser ( ui d, i ) ;
end;
end;
close( I nt r ar e) ;
end;

procedure Compact eazaUser i ;
/ / const r ui est e vect or ul user i pe baza usUi d
var i : l ongi nt ;
begin
m: =0;
for i : =1 t o maxUid do
if usUi d[ i ] <> nil
then begin
m: = m+ 1;
us[ m] : = usUi d[ i ] ;
end;
end;

function Compar a( u1, u2: User Pt r ) : i nt eger ;
{ r et ur neaza - 1 daca u1 < u2, 0 daca =, 1 daca u1 > u2 }
var i : i nt eger ;
begin
for i : = 1 to n do
if u1^[ i ] <> u2^[ i ]
then begin
if u1^[ i ] = f al se
then Compar a : = - 1
else Compar a : = 1;
exi t ;
end;
Compar a : = 0;
end;

procedure Mer geSor t User i ;
/ / sor t eaza user i i dupa l i st a de di r ect oar e
var
usSur sa, usDest , usAux : ^User Ar r ay;
l Sor t ,
/ / l ungi mea unei secvent e sor t at e, i ni t i al 1
64
sor t Pos,
/ / pozi t i a pr i mul ui el ement nepr ocesat i n i t er at i a cur ent a
seq1Cur , seq2Cur ,
/ / pozi t i i l e cur ent e i n secvent el e sor t at e l a pasul ant er i or ,
/ / i nca necer cet at e
seq1End, seq2End,
/ / pozi t i a de dupa ul t i mul el ement si n secvent a
i : i nt eger ;
begin
/ / poi nt er ul uvs pr i mest e adr esa vect or ul ui user i
usSur sa : = @us;
new( usDest ) ;
l Sor t : = 1;
while l Sor t < mdo
begin
sor t Pos : = 1;
while sor t Pos <= mdo
begin
seq1Cur : = sor t Pos;
seq1End : = sor t Pos + l Sor t ;
if ( seq1End > m+ 1)
then seq1End : = m+ 1;
seq2Cur : = seq1End;
seq2End : = seq2Cur + l Sor t ;
if ( seq2End > m+ 1)
then seq2End : = m+ 1;
{sor t ar e pr opr i u- zi sa: }
for i : = sor t Pos t o seq2End - 1 do
begin
if seq1Cur < seq1End
then begin
if seq2Cur < seq2End
then begin
{l uamuser ul i , mi ni mul di nt r e user i i cur ent i ai ambel or secvent e}
if
Compar a( usSur sa^[ seq1Cur ] , usSur sa^[ seq2Cur ] ) < 0
then begin
usDest ^[ i ] : = usSur sa^[ seq1Cur ] ;
seq1Cur : = seq1Cur + 1;
end
else begin
usDest ^[ i ] : = usSur sa^[ seq2Cur ] ;
seq2Cur : = seq2Cur + 1;
end
end
65
else begin
{put eml ua user ul i doar di n pr i ma secvent a}
usDest ^[ i ] : = usSur sa^[ seq1Cur ] ;
seq1Cur : = seq1Cur + 1;
end;
end
else begin
{put eml ua user ul i doar di n a 2- a secvent a}
usDest ^[ i ] : = usSur sa^[ seq2Cur ] ;
seq2Cur : = seq2Cur + 1;
end;
end;
sor t Pos : = sor t Pos + l Sor t * 2;
end;
{O i t er at i e de i mbi nar e s- a f i nal i zat . I nver samvect or i i . }
usAux : = usSur sa;
usSur sa : = usDest ;
usDest : = usAux;
l Sor t : = l Sor t * 2;
end;
{sor t ar e f i nal i zat a. copi emt oat e el ement el e di n uvs i napoi i n user i }
us : = usSur sa^;
end;

procedure Cal cul Nr Gr up;
var i : i nt eger ;
begin
nr Gr up : = 1;
for i : = 2 to mdo
if Compar a( us[ i - 1] , us[ i ] ) <> 0
then nr Gr up : = nr Gr up + 1;
end;
procedure Scr i eNr Gr oup;
begin
assi gn( i esi r e, ' GRUP. OUT' ) ; r ewr i t e( i esi r e) ;
wr i t el n( i esi r e, nr Gr up) ; cl ose( i esi r e) ;
end;
begin
Ci t i r e;
Compact eazaUser i ;
Mer geSor t User i ;
Cal cul Nr Gr up; Scr i eNr Gr oup;
end.
66
Chimie

Profesorul de chimie a pregtit un test de evaluare a
cunotinelor. Fiecare test reprezint o formula n care apar notaiile
anumitor elemente chimice. Pentru fiecare element chimic, notaia
cruia apare n formul, elevul trebuie s calculeze numrul respectivi
de atomi.
n scopuri didactice, formulele chimice se definesc cu ajutorul
urmtoarelor formule metalingvistice:
<Cifr> ::= 1234567890
<Cifr nenul> ::= 123456789
<Numr> ::= <Cifr nenul>{<Cifr>}
<Liter mare> ::= ABCDEFGHI J KLMNOP
QRSTUVWXYZ
<Liter mic> ::= abcdef ghi j kl mnop
qr st uvwxyz
<Atom> ::= <Liter mare>[<Liter mic>]
<Element Compus> ::= <Atom> | ( <Compus>)
<Compus> ::= <Element Compus>[<Numr>]
{<Element Compus>[<Numr>]}
<Molecul> ::= <Compus>
<Formul> ::=
[<Numr>]<Molecul>{+[<Numr>]<Molecul>}

Exemple:
C2H5OH+3O2+3Si O2 3Si O2+2CO+3H2O+O2
99C2H5OH+3CuO2 C2H5OH+3O2+3( Si O2)
Mg( OH) 2 + H2S04 2O+Mg3( C( OH) 2) 2+H2SO4

n formulele chimice unitatea gramaticala <Numr> are
semnificaia de multiplicator, indicnd numrul de atomi sau de
molecule, iar semnul + indic o reacie chimic. Amintim, c n
67
cazul reaciilor chimice atomii se pot recombina n molecule noi, ns
ei nu apar i nici nu dispar. Evident, cunoscnd formula chimic,
pentru fiecare element putem calcula numrul respectiv de atomi. De
exemplu, n formula C2H5OH+3O2+3Si O2 sunt 2 atomi de C; 6
atomi de H; 13 atomi de O; 3 atomi de Si .
Elaborai un program care calculeaz numrul de atomi pentru
fiecare din elementele chimice ce apar ntr-o formul.
Date de intrare. Fiierul text CHI MI E. I N conine pe o singur
linie un ir de caractere ce reprezint o formul chimic.
Date de ieire. Fiierul text CHI MI E. OUT va conine pe prima
linie un numr ntreg k numrul de elemente chimice ce apar n
formul. Fiecare din urmtoarele k linii va conine notaia elementului
chimic i numrul respectiv de atomi, separi prin spaiu. Ordinea
apariiei notaiilor elementelor chimice este arbitrar.
Exemplu.
CHI MI E. I N CHI MI E. OUT
H2O+Mg3( C( OH) 2) 2+H2SO4 5
H 8
O 9
Mg 3
C 2
S 1


Restricii. irul din fiierul de intrare va avea cel mult 250
caractere. O formul va avea cel mult 10000 atomi. Timpul de
execuie nu va depi 1 secund. Programul va folosi cel mult 32
Megaoctei de memorie operativ. Fiierul surs va avea denumirea
CHI MI E. PAS, CHI MI E. C sau CHI MI E. CPP.

Rezolvare

Pentru a calcula numrul de atomi, parcurgem formula chimic
de la dreapta la stnga. Pentru a simplifica calculele, vom rescrie
formula, identificnd moleculele din componena ei. Vom numi
numrul aflat n partea dreapt a unui atom multiplicator local, iar cel
din partea stng a unei molecule multiplicator global. Menionm,
68
c multiplicatorii globali se identific foarte uor, ntruct n faa lor
se afl semnul +, cu excepia celui de la nceputul formulei.
Iniial, ambii multiplicatori au valoarea 1. n procesul
parcurgerii, memorm multiplicatorul local, care ne indic numrul
de atomi din faa lui. Daca molecula are n fa un multiplicator
global, nmulim numrul de atomi din molecula respectiv cu
valoarea acestuia.
Semnificaia parantezelor va fi luat n considerare, memornd
multiplicatorii respectivi ntr-o stiv.
Prin urmare, algoritmul de calcul va include urmtorii pai:
1. Parcurgnd formula de la dreapta la stnga, citete multiplicatorul
local. n lipsa acestuia, prin definiie, lui se atribuie valoarea 1.
2. Daca urmeaz o litera mica, se citete i litera mare din stnga ei.
mpreun, ele identific un element chimic. Dac avem doar o litera
mare, ea reprezint un element chimic.
3. Adugm la numrul de atomi ai elementului chimic identificat
produsul multiplicatorilor global i local. Trecem la pasul 1.
4. Daca urmeaz paranteza ), multiplicatorul global este depus n
stiv, iar multiplicatorul global se nmulete cu cel local. Trecem la
pasul 1.
5. Daca urmeaz paranteza (, se extrage din stiv multiplicatorul
global. Trecem la pasul 1.

Program Chi mi e; { Cl asel e 10- 12 }
const Li t er e_mi ci : set of char = [ ' a' . . ' z' ] ;
const Li t er e_mar i : set of char = [ ' A' . . ' Z' ] ;
const ci f r e : set of char = [ ' 0' . . ' 9' ] ;
var f I nt r ar e, f I esi r e : Text ;
var s : st r i ng; n : I nt eger ;
{ r epr ezi nt a l i psa l i t er i mi ci i n numel e at omul ui }
const ni mi c = succ( ' z' ) ;
{ vect or pent r u a past r a numar ul de apar i t i i a at omi l or }
var C : Array[ ' A' . . ' Z' , ' a' . . ni mi c] of I nt eger ;

pr ocedur e numar a_i n_mol ecul a( i , j : I nt eger ; m: I nt eger ) ;
{ numar a at omi i i nt r o mol ecul a, si i i i nmul t est e cu mul t i pl i cat or ul m}
{ mr epr ezi nt a mul t i pl i cat or ul gl obal }
var k : I nt eger ; numar , exponent : I nt eger ;
St i va: Array[ 0. . 1000] of I nt eger ;
begin
St i va[ 0] : = 0;
k: =j ; { i ncepemde l a capat spr e i nceput };
69
while ( k>=i ) do begin
numar : = 1; {r epr ezi nt a mul t i pl i cat or ul di n f at a el ement ul ui }
{ Ci t est e mul t i pl i cat or ul }
if s[ k] in ci f r e then begin
numar : =0; exponent : = 1;
while s[ k] in ci f r e do begin
numar : = numar +( or d( s[ k] ) - or d( ' 0' ) ) *exponent ;
exponent : = exponent * 10;
dec( k) ;
end; end;
if ( s[ k] in l i t er e_mi ci ) then begin
{cr est e cu mul t i pl i cat or _gl obal * mul t i pl i cat or _l ocal }
i nc( C[ s[ k- 1] , s[ k] ] , m* numar ) ;
Dec( k, 2) ; continue;
end;
if ( s[ k] in l i t er e_mar i ) then begin
{cr est e cu mul t i pl i cat or _gl obal * mul t i pl i cat or _l ocal }
i nc( C[ s[ k] , ni mi c] , m* numar ) ;
Dec( k) ; continue;
end;
if s[ k] =' ) ' then begin
i nc( St i va[ 0] ) ;
St i va[ St i va[ 0] ] : = m; { depune mi n st i va }
m: = m*numar ;
Dec( k) ; continue;
end;
if s[ k] =' ( ' then begin
m: = St i va[ St i va[ 0] ] ; { Ext r age mdi n st i va }
Dec( St i va[ 0] ) ;
Dec( k) ;
end; end; end;

procedure numar a_i n_mol ecul a_cu_mul t i pl i cat or ( i , j :
I nt eger ) ;
{ numar a at omi i i nt r o mol ecul a cu mul t i pl i cat or i n f at a }
var numar : I nt eger ;
begin
numar : =0;
while ( s[ i ] in ci f r e) do begin
numar : = ( numar * 10) + or d( s[ i ] ) - or d( ' 0' ) ;
i nc( i ) ;
end;
if numar =0 then numar : = 1;
numar a_i n_mol ecul a( i , j , numar ) ;
end;
70

procedure numar a_i n_f or mul a( i , j : I nt eger ) ;
{ Numar a at omi i i nt r - o f or mul a i nt r eaga }
var u, k : I nt eger ;
begin
u : = 1;
for k: = 1 to n do begin
if s[ k] = ' +' then begin
numar a_i n_mol ecul a_cu_mul t i pl i cat or ( u, k- 1) ;
u : = k+1;
end;
end;
numar a_i n_mol ecul a_cu_mul t i pl i cat or ( u, n) ;
end;

var u, v: char ; count : I nt eger ;
begin
{ I ni t i al i zar e }
Fi l l Char ( C, si zeof ( C) , 0) ;
{ Ci t i r e Dat e }
Assi gn( f I nt r ar e, ' chi mi e. i n' ) ; Reset ( f I nt r ar e) ;
Readl n( f I nt r ar e, s) ; Cl ose( f I nt r ar e) ;
{ Pr ocesar e }
n : = l engt h( s) ;
numar a_i n_f or mul a( 1, n) ;
{ Scr i er e dat e }
Assi gn( f I esi r e, ' chi mi e. out ' ) ; Rewr i t e( f I esi r e) ;
{ Det er mi na Numar l de el ement e chi mi ce di st i nct e }
count : = 0;
for u: =' A' to ' Z' do begin
for v: =' a' to ni mi c do begin
if C[ u, v] >0 then I nc( count ) ;
end; end;
Wr i t el n( f I esi r e, count ) ; {scr i e numar ul de el ement e chi mi ce}
for u: =' A' to ' Z' do begin
for v: =' a' to ni mi c do begin
if C[ u, v] >0 then begin wr i t e( f I esi r e, u) ;
if v<>ni mi c then write( f I esi r e, v) ;
wr i t el n( f I esi r e, ' ' , C[ u, v] ) ;
end; end; end;
Cl ose( f I esi r e) ;
end.

71
3. Academia de Studii Economice din Moldova

3.1. Prezentarea general a ASEM
Rector ASEM, prof.univ., dr.hab. Grigore Belostecinic

Declarndu-i independena n 1991, Republica Moldova a pornit pe
un drum dificil i anevoios al transformrilor politice, economice i
sociale. Dezvoltarea economiei naionale devenise condiia primordial
pentru fortificarea statalitii i securitii republicii. Printre noile realiti
s-a impus i necesitatea deschiderii unei instituii de nvmnt
economic superior, care urma s fac fa condiiilor economiei de
tranziie.
Astfel, la 25 septembrie 1991, prin Hotrrea nr. 537 a Guvernului
Republicii Moldova, condus pe atunci de Primul Ministru Valeriu
Muravschi, a fost nfiinat Academia de Studii Economice din Moldova
(ASEM).
n cei 17 ani de activitate, Academia de Studii Economice a evoluat
ascendent, devenind principala instituie universitar de profil economic
din republic. Acum Academia reprezint un complex universitar
modern, n cadrul cruia activeaz: 6 faculti; 27 catedre; Biblioteca
tiinific (depozitar al Bncii Mondiale, 5 sli de lectur cu un volum de
500 mii de exemplare de carte); Departamentul de Informatic, inclusiv
28 de sli pentru instruire nzestrate cu calculatoare performante
conectate la INTERNET prin dou canale de 4,6 Mbps fiecare i pot
electronic pentru fiecare student; Centrul Multimedia cu 70 de
calculatoare Pentium 4, destinat lucrului individual al studenilor cu
informaiile n form electronic i care este deschis 12 ore pe zi,
inclusiv cele de smbt; Centrul de Competen n Informatic cu 21 de
calculatoare, videoproiector, tabl inteligent; Centrul Moldo-American
pentru Iniiativ Privat; cteva centre postuniversitare de instruire i
consultan; serviciile Masterat i Doctorat; un Departament editorial-
poligrafic; Incubatorul de Afaceri Studenesc; Baza de odihn
Trandafir n or. Vadul lui Vod i alte subdiviziuni. ASEM dispune de
5 blocuri de studii bine amenajate, 7 cmine i un complex sportiv
modern, care deseori este gazd a unor competiii sportive republicane i
internaionale. n 2006 au fost deschise sli cu calculatoare pentru
instruire, conectate la Internet, n toate cminele studeneti.
n perioada 1991-2007 la ASEM au fost pregtii peste 23 mii de
specialiti de nalt calificare: manageri, marketologi, finansiti,
72
contabili, informaticieni, statisticieni, pedagogi-economiti. Muli
absolveni ai Academiei dein funcii importante att n economia
naional, ct i n structuri de profil economic de peste hotare.
O importan deosebit n activitatea Academiei se acord relaiilor
de colaborare cu alte instituii de nvmnt i centre de cercetare din
peste 20 de state ale lumii. ASEM este membru al Asociaiei
Universitilor Europene (AUE), membru al Asociaiei Universitilor
Francofone (AUF), membru al Reelei Universitilor din Bazinul Mrii
Negre (BSUN), membru al Reelei Universitilor Iniiativei
Central_Europene (CEI University Network) .a. Raporturi reciproc
avantajoase au fost stabilite cu Academia de Studii Economice din
Bucureti, Academia de Studii Economice G.V.Plehanov din
Moscova, Universitatea Alexandru Ioan Cuza din Iai, Institutul de
Cercetri Economice al Academiei Romne, Universitatea din Omaha
(Nebrasca, SUA), Universitatea Central din Carolina de Nord (Durham,
SUA), Aliana Francez i Aliana Universitilor Francofone .a. n
colaborare cu centrele universitare din Frana, Spania, Grecia i
Germania, ASEM particip la realizarea unor proiecte finanate de
Programul TACIS i Banca Mondial. Aceste relaii au constituit un
suport considerabil pentru implementarea metodelor performante de
predare i promovare a principiilor economiei moderne.
n cadrul schimburilor academice cu alte centre universitare,
numeroi profesori i studeni au efectuat stagii n strintate. De la
nfiinarea ASEM, peste 430 de cadre didactice i cercettori ai
Academiei au beneficiat de stagii de scurt i lung durat n circa 20 de
ri. La ASEM urmeaz studiile 134 de studeni strini din Ucraina,
Rusia, Romnia, Congo, China i Azerbaidjan.
Realizrile obinute au fost confirmate oficial i de ctre stat,
Academia de Studii Economice din Moldova fiind printre primele
instituii de nvmnt acreditate de Guvernul Republicii Moldova.
Tinznd s extind aria prestaiilor educaionale, Senatul ASEM
creeaz n fiecare an oportuniti inedite de studii. ncepnd cu anul
2002, la ASEM au fost implementate planuri de nvmnt bazate pe
sistemul european de credite transferabile de studii. Acest sistem ne
apropie i mai mult de practicile internaionale, fiind o condiie
indispensabil pentru mobilitatea studenilor, inclusiv n instituiile de
peste hotare. Noile planuri includ un numr mai mare de discipline
opionale studentul are dreptul s aleag att cursul, ct i profesorul,
participnd astfel la definirea propriului traseu educaional. Aceast
practic i va mobiliza i pe profesori, or, n cazul n care disciplina
73
predat de ei nu va fi solicitat de ctre studeni, ei vor trebui s schimbe
lucrurile sau s prseasc instituia.
De asemenea, noile planuri de nvmnt prevd o cretere
considerabil a ponderii disciplinelor, care asigur pregtirea de
specialitate. O atenie sporit se acord i predrii limbilor moderne,
cunoaterea crora fiind, n condiiile economiei de pia, o carte de
vizit a oricrui specialist. Un rol aparte revine implementrii, n cadrul
ASEM, a stipulrilor documentelor de constituire a Procesului de la
Bologna, accentul fiind pus pe calitatea studiilor, dezvoltarea cercetrilor
tiinifice i perfecionarea gestiunii universitare.
Pentru a face viaa studenilor mai interesant, dar i pentru motivarea
iniiativei proprii, la ASEM se organizeaz diverse concursuri,
majoritatea crora au devenit deja o tradiie. Printre acestea pot fi
nominalizate Cel mai bun student al anului, Miss ASEM viitoarea
femeie de afaceri, Mister X ASEM, Perechea potrivit, olimpiadele
la informatic i matematic, tradiionalele TVC-uri, Ziua efilor de
grup. n 2005 este deschis postul de radio al ASEM, prin intermediul
cruia studenii i pot expune opinia despre procesul de nvmnt,
viaa n cmine etc. Aceleai posibiliti de a-i mediatiza opiniile i
sugestiile privitoare la mbuntirea mediului n care nva studenii
notri sunt oferite i prin publicarea articolelor n ziarul Curierul
Economic.
Deja de cinci ani fiecrui student de la anul I, la nceputul anului de
nvmnt, i se nmneaz Ghidul studentului, prin intermediul cruia
studenii se familiarizeaz cu: Regulamentul de organizare i desfurare
a procesului didactic n instituiile de nvmnt superior; Regulamentul
privind organizarea i desfurarea procesului de studii n baza
Sistemului European de Credite Academice Transferabile; Planul de
nvmnt la specialitate pentru ntreaga perioad a studiilor; Descrierea
sistemului de evaluare a cunotinelor studenilor n ASEM; Informaii
privind serviciile prestate de Biblioteca ASEM.
n vederea implicrii mai active a studenilor n procesul lurii
deciziilor, este implementat Sistemul de autoguvernare studeneasc,
care presupune:
o implicare mai activ a efilor de grup n procesul lurii
deciziilor i de organizare a procesului de studii la nivelul grupei
academice;
activitatea Consiliilor studeneti n cadrul tuturor facultilor;
activitatea Senatului Academic Studenesc.
n scopul mbuntirii calitii procesului de studii, periodic sunt
organizate sondaje de opinie n rndul studenilor, n baza unor
74
chestionare anonime, cu un numr considerabil de ntrebri, nchise sau
deschise, efectuate pe un eantion reprezentativ.
n baza deciziei Senatului, ncepnd cu semestrul de primvar 2005
n ASEM se implementeaz procedura de evaluare a calitii predrii
cursurilor (aprecierea profesorilor de ctre studeni), chestionarul
incluznd ntrebri (afirmaii), cu variante de rspuns n forma unor scale
de atitudini i ntrebri de control.
Toate inovaiile nominalizate se fac n favoarea studenilor. ASEM
tinde s creeze condiii optime de instruire, astfel ca studenii s se simt
ca acas, iar absolvind Academia s se simt n realitate specialiti de
nalt calificare.
n prezent la ASEM urmeaz studiile peste 15 mii de studeni,
activeaz 29 de doctori habilitai i 201 de doctori n tiine. Nivelul nalt
al studiilor i cercetrile tiinifice profunde, tendina spre perfecionarea
continu i abilitatea de adaptare la cerinele societii au plasat ASEM
pe treapta celor mai atractive instituii de nvmnt superior din
republic.
mi exprim convingerea c, prin dezvoltarea nvmntului i tiinei
economice, prin nsuirea acesteia de ctre toi specialitii i marea
majoritate a populaiei, vom putea promova interesul naional:
dezvoltarea potenialului economic al rii.
Doresc tuturor pretendenilor la studii mai puine emoii i mult noroc
la probele de concurs. V promitem condiii bune de studii i v
garantm obinerea unor specialiti, care v vor oferi posibiliti reale de
angajare n cmpul muncii.

3.2. Facultatea Business i Administrarea
Afacerilor

Decan, conf. univ., dr. Sergiu Portrescu

Facultatea de Business i Administrarea Afacerilor este o facultate
creat n 2002 n baza a dou faculti cu o bogat istorie i tradiii
facultile de Management i Marketing.
Activitatea profesional-didactic este asigurat de catedrele:
Management;
Marketing i logistic;
Turism i servicii hoteliere;
Merceologie i tehnologie;
Cultur fizic i sport.
75
Facultatea de Business i Administrarea Afacerilor are n structura sa
urmtoarele specialiti i specializri:
Business i administrare. Specialiti pregtii pentru organizarea i
conducerea activitii att la nivel de ageni economici, cu diferite forme de
proprietate (de stat, privat sau mixt), ct i la nivel naional: manageri
capabili s gndeasc strategic i creativ, s adopte decizii raionale, lideri
efectivi orientai spre mbuntirea performanelor organizaiei, spre calitate
i perfecionare continu. Studiile sunt organizate n limbile romn i rus;
cu frecven la zi i frecven redus. Titlul acordat liceniat n economie.
Marketing i logistic. Absolvenii acestei specialiti pot ocupa posturi
n serviciile de marketing, aprovizionare sau desfacere ale unitilor
productoare de bunuri materiale, n comer, servicii de reclam, bnci,
ntreprinderi specializate n efectuarea cercetrilor de marketing i prestarea
serviciilor de marketing, n nvmntul mediu i universitar, precum i n
cadrul organelor de ndrumare, coordonare i sintez macroeconomic.
Studiile sunt organizate n limbile romn i rus; cu frecven la zi i
frecven redus. Titlul acordat liceniat n economie.
Merceologie i comer. Specialiti n organizarea i coordonarea
activitii economice a ntreprinderilor de comer cu amnuntul i cu ridicata:
Posed cunostinte profunde n diverse aspecte ce tin de problematica
marfara: verificarea calitatii, naturalitatii, activitatilor de standartizare,
certificare, depozitare, livrare, transportare, pastrare, comercializare etc.
Absolvenii pot activa n calitate de economiti n funcii de conducere i
executive n unitile comerciale, n serviciile vamale, n activitile
organizaiilor de standartizare, certificare, de protecie a consumatorilor a
organelor publice locale, n unitile comerciale. Studiile sunt organizate
n limbile romn i rus; cu frecven la zi i fr frecven. Titlul acordat
liceniat n economie.
Turism. Specialiti pregtii pentru activitatea de organizare i dirijare a
ageniilor de turism, a hotelurilor i motelurilor. Studiile sunt organizate n
limbile romn, englez, francez i rus; cu frecvena la zi i fr frecven.
Titlul acordat liceniat n servicii..
Admiterea la facultate n 2007, conform noului nomenclator de
specialiti universitare, se va efectua la specialitile/domeniile de formare
profesional:
363.1 Business i administrare (cu specializrile business i
administrare, achiziii, managementul proprietii intelectuale);
362.1. Marketing i logistic;
369.1. Merceologie i comer;
812.1. Turism.
76
n procesul de instruire, la facultate se acord o mare atenie studierii
limbilor moderne, comunicrii de afaceri, utilizrii calculatoarelor, ceea ce
ofer absolvenilor acestei faculti anse suplimentare de angajare n cmpul
muncii. Pe lng aceasta, absolvenii facultii, indiferent de specialitate,
sunt pregtii pentru a iniia afaceri proprii n cele mai diverse domenii ale
economiei naionale.

3.3. Facultatea Cibernetic, Statistic i
Informatic Economic (www.csie.ase.md)

Decan, prof.univ.dr.hab. Ion Bolun

mpreun s edificm societatea informaional
societatea cunoaterii

Desfurarea larg a lucrrilor de edificare a societii informaionale
i creterea, odat cu concurena, a rolului calitii deciziilor de gestiune
a activitilor economice, impun necesitatea pregtirii specialitilor de
nalt calificare n informatic, statistic i cibernetic economic.
Dobndind, pe parcursul instruirii, capaciti i competene privind
procesele economice i folosirea metodelor economico-matematice
pentru eficientizarea unor asemenea procese n mbinare cu operarea
lejer cu mijloacele informatice moderne, tinerii specialiti sunt solicitai
pe piaa muncii att ca informaticieni, ct i ca economiti.
3.3.1. Facultatea este responsabil de pregtirea specialitilor n
domeniul ciberneticii, informaticii, statisticii i previziunii economice. n
cadrul celor 4 catedre de la facultate Cibernetic i informatic
economic, Statistic i previziune economic, Matematic i
Bazele informaticii economice activeaz 61 de cadre didactice,
inclusiv 5 doctori habilitai i 33 doctori n tiine.
Catedra Cibernetic i informatic economic ef catedr
prof.univ.dr.hab. Ilie Costa, este format nc n 1965 ]n cadrul
Institutului Politehnic din Chiinu, din 1973 devenind catedr de profil.
Catedra este responsabil de pregtirea tinerilor specialiti de nalt
calificare la specialitile Cibernetic i informatic economic i
Informatic i instruirea studenilor de la toate specialitile ASEM
privind folosirea metodelor economico-matematice i a aplicaiilor
informatice economice. De asemenea, catedra este responsabil de
pregtirea specialitilor prin masterat la specialitatea Tehnologii
informaionale n economie, Management informaional i
77
Cibernetic economic i prin doctorat la specialitile Metode
economico-matematice i Sisteme informaionale.
n cadrul catedrei activeaz 19 profesori titulari, din care 3 doctori
habilitai i 9 doctori n tiine. O bun parte din profesorii catedrei sunt
absolvenii ASEM. Profesorii catedrei in aa cursuri ca: Limbaje
evoluate de programare; Baze de date; Cibernetic economic; Platforma
.NET; Inteligen artificial; Reele informatice; Programare Web;
Afaceri electronice; Proiectarea sistemelor informatice .a. Catedra a
organizat mai multe conferine tiinifice, inclusiv internaionale.
Profesorii catedrei au urmat cursuri de perfecionare n SUA, Frana,
Grecia, Romnia, Rusia i Bulgaria. Pe lng catedr funcioneaz
cercurile tiinifice studeneti Tehnologia programrii i Programare
avansat. Anual catedra organizeaz Olimpiada la Informatic a
studenilor ASEM.
Catedra de profil Statistic i previziune economic ef catedr
prof.univ.dr. Ion Prachi, este format n 1994. Catedra este
responsabil de pregtirea tinerilor specialiti de nalt calificare la
specialitatea Statistic i previziune economic i instruirea n
statistic a studenilor de la toate specialitile ASEM. De asemenea,
catedra este responsabil de pregtirea specialitilor prin doctorat la
specialitatea Statistic economic. n cadrul catedrei activeaz 14
profesori titulari, din care 9 doctori n tiine. Majoritatea profesorilor
catedrei sunt absolvenii ASEM. La catedra se in un ir de cursuri noi,
inclusiv: "Teoria i practica sondajelor", "Sistemul conturilor naionale",
"Econometrie", "Previziune economica", "Statistic financiar-bancar"
etc. Profesorii catedrei au urmat cursuri de perfecionare n SUA, Frana,
Grecia, Romnia i Rusia. Ei sunt implicai n diverse programe de
cercetare tiinific. Catedra a organizat mai multe conferine tiinifice
i mese rotunde, discutnd diverse probleme de mbuntire a
activitilor n domeniu n republic. Pe lng catedr funcioneaz
cercul tiinific studenesc Statistic i previziune economic.
Catedra Matematic ef catedr prof.univ.dr.hab. Ion Bunu, este
format n 1972. Catedra este responsabil de instruirea n matematic a
studenilor de la toate specialitile ASEM. n cadrul catedrei activeaz
11 profesori titulari, din care 1 doctor habilitat i 9 doctori n tiine.
Profesorii catedrei sunt implicai n diverse programe de cercetare
tiinific. Conf.univ., dr., Dumitru Zambichi n 2004 a devenit laureat
al Premiului Naional n domeniul tiinei i Tehnicii. Catedra a
organizat mai multe conferine tiinifice i mese rotunde. Anual catedra
organizeaz Olimpiada la Matematica aplicat a studenilor ASEM.
78
Catedra Bazele informaticii economice ef catedr conf.univ.dr.
Tudor Gdilic, este format n 1994. Catedra este responsabil de
instruirea n informatica general a studenilor de la toate specialitile
ASEM. n cadrul catedrei activeaz 17 profesori titulari, din care 1
doctor habilitat i 7 doctori n tiine. Membrul corespondent al
Academiei Romno-Americane, prof.univ.dr.hab. Dumitru Todoroi
conduce i cercul tiinific studenesc Sisteme de informatizare a
societii secolului XXI.
3.3.2. Suportul tiinifico-didactic al instruirii. O bun parte din
cursuri sunt asigurate cu manualele elaborate de profesorii facultii,
inclusiv: Bazele informaticii aplicate (2005, 2003, 2001, 1999);
Programarea calculatoarelor (2003); Cercetri operaionale (2004);
Baze de date relaionale (1998); Statistica actuarial n asigurri (2003);
Programarea n logic (2000); Algebr liniar (2001), Matematica
economic (2006), Econometrie (1999); Modelarea proceselor
economice (1998); Iniiere n reele (1997); Introducere n business-ul
informaional (1996) etc.
Pentru consolidarea cunotinelor teoretice, efectuarea lucrrilor de
laborator i a celor de control, pentru perfectarea tezelor anuale i a celor
de licen, la dispoziia studenilor sunt 29 sli cu calculatoare moderne.
n total, la ASEM funcioneaz peste 1100 de calculatoare interconectate
n reea cu ieire la Internet. Fiecare student dispune de un cont propriu
de pot electronic i spaiu individual de memorie-disc de 40
megaoctei la unul din serverele reelei ASEM. Funcioneaz Centrul
Multimedia ASEM dotat cu 70 de calculatoare Pentium 4, destinat
lucrului individual al studenilor. Catalogul electronic al Bibliotecii
ASEM i sursele bibliografice, inclusiv materialele didactice n form
electronic faciliteaz activitile de autoinstruire i cercetare a
studenilor i profesorilor.
Acest potenial tiinifico-didactic asigur condiiile pregtirii unor
specialiti de nalt calificare n domeniul informaticii, ciberneticii,
statisticii i previziunii economice specialiti solicitai nu numai n
republic, dar i peste hotare.
3.3.3. Specialiti. n cadrul facultii pretendenii pot alege
specialitile:
367.1 Statistic i previziune economic (zi - 3 ani de studii;
frecven redus - 4 ani de studii). Titlul acordat - licentiat in
economie;
368.1 Cibernetic i informatic economic (zi - 3 ani de studii;
frecven redus 4 ani de studii). Titlul acordat - licentiat in
economie;
79
444.1 Informatic (zi - 3 ani de studii; frecven redus 4 ani de
studii). Titlul acordat - licentiat in informatic.
Limbile de studii: romn i rus.
Specialitatea Informatic. Utilizarea mijloacelor informatice a
devenit de importan strategic pentru majoritatea domeniilor de
activitate ale societii moderne. Un exemplu semnificativ este Internet,
de a crui servicii se folosesc peste 1 mlrd de oameni. n rile economic
dezvoltate, dar i n alte ri, se lucreaz intens asupra edificrii societii
informaionale societii cunoaterii: Cine deine informaia
stpnete situaia. Deficitul de specialiti-informaticieni este
considerabil, ndeosebi n rile economic dezvoltate.
i n R.Moldova conducerea de vrf a anunat informatizarea
societii de prioritate strategic. Firmele ce activeaz n acest domeniu
dispun de anumite privilegii, aprobate de ctre Parlament n decembrie
2004, inclusiv scutirea de impozitul pe venit. Informaticienii din
Moldova au format firme mixte n domeniu, ce elaboreaz produse
informatice pentru agenii economici de peste hotare, contribuind astfel
la exportul de mrfuri i servicii avansate i, respectiv, la susinerea
creterii economice a republicii.
Specialitatea Cibernetic i informatic economic. Creterea
rolului informaticii i a activitilor economice bazate pe decizii
argumentate, nainteaz, pe prim-plan, necesitatea pregtirii specialitilor
de nalt calificare n domeniu. Specialistul este instruit pentru calitatea
de economist-analist n problemele de dirijare, luare de decizii eficiente
n sfera economico-social cu utilizarea nemijlocit a instrumentarelor
moderne, a noilor tehnologii informaionale, precum i pentru calitatea
de specialist-manager n business-ul informatic, informatizarea unitilor
economice, activitatea unitilor economice n domeniul informaticii.
Dispunnd de cunotine att referitoare la procesele economice, ct i la
folosirea metodelor economico-matematice pentru modelarea i
eficientizarea unor asemenea procese n mbinare cu operarea lejer cu
mijloacele informatice moderne, aceti specialiti au cea mai larg arie
de aplicare a cunotinelor, fiind solicitai pe piaa muncii att ca
informaticieni, ct i ca economiti. Absolvenii specialitii pot activa la
ntreprinderi private i publice, inclusiv centre informatice, n sistemul
financiar-bancar, etc.
Specialitatea "Statistic" ofer tinerilor posibilitatea de a deveni
specialiti n analiza informaiilor economice, elaborarea de pronosticuri
economice i efectuarea sondajelor de opinie. n condiiile economiei de
pia, analiza informaiilor economice este solicitat n toate sectoarele.
80
Aceasta servete pentru fundamentarea deciziilor i elaborarea
previziunilor economice. Pe parcursul studiilor, studenii urmeaz
practica aplicativ la Biroul Naional de Statistic i n filialele acestuia.
ASEM este unica instituie din republic, n cadrul creia se pregtesc
specialiti de nalt calificare n statistic economic i social.

3.4. Facultatea Contabilitate

Decan, prof.univ.dr.hab.Viorel urcanu

Contabilitatea este una din sublimele creaii
ale spiritului omenesc... (Goethe)

3.4.1. Facultatea "Contabilitate" are o experien bogat n
domeniul pregtirii specialitilor de nalt calificare acumulat nu numai
n cadrul ASEM (din anul 1991), dar i pe parcursul mai multor ani n
cadrul Universitii Tehnice i al Universitii de Stat.
Absolvenii acestei specialiti sunt cunoscui nu numai n republic,
ci i n afara hotarelor ei. Printre ei menionm: Mihai Manoli, ex-
ministru al finanelor; Olga Antipina, contabil-ef al S.A. "Ionel", Pavel
Bodarev, director general al Companiei "Moldauditing", Nicolae Dorin,
preedinte al S.A. "Mobiasbanc", Iurie Cazacu, ef al Direciei
"Metodologia contabilitii i auditului" a Ministerului Finanelor;
Alexandra Can, director al S.A. "Artima".
n cadrul facultii activeaz trei catedre: "Contabilitate i audit",
"Contabilitate" i "Analiza activitii economico-financiare", a cror
componen o constituie 79 de profesori, inclusiv: 3 profesori
universitari, 24 confereniari, 15 doctori n economie i 8 magitri.
Catedra Contabilitate i audit. Disciplinele principale: Bazele
contabilitii, Contabilitatea financiar, Contabilitatea managerial,
Auditul. Studenii au posibilitatea s studieze aici i alte discipline:
Contabilitatea n comer, Contabilitatea bancar, Contabilitatea n
instituiile publice, Contabilitatea internaional. O atenie deosebit se
acord studierii aplicaiilor informatice n contabilitate: 1C -
Contabilitate, Wis-count i Book-Keeper ceea ce permite ca
absolvenii s fie pregtii bine pentru munca practic la ntreprinderi.
Catedra Analiza activitii economico-financiare. Discipline:
Bazele analizei economice, Analiza gestionar, Analiza rapoartelor
financiare. Predarea disciplinelor se efectueaz n baza datelor
ntreprinderilor, ceea ce ofer posibilitate studenilor s obin cunotine
temeinice, apropiate de activitatea practic.
81
Catedra Contabilitate. Asigur pregtirea la disciplinele de
contabilitate la alte faculti ale ASEM. Profesorii catedrei
contientizeaz faptul c, pentru studenii altor specialiti din Academie,
contabilitatea ocup un loc important n planul de nvmnt, de aceea i
disciplinele se predau aplicnd materiale metodico-didactice i
ilustrative: documente primare, registre contabile, modele ale rapoartelor
financiare. Pentru realizarea acestui scop, catedra dispune de un cabinet
metodic.
3.4.2. Specialiti. ncepnd cu anul 2004, facultatea organizeaz
admiterea la specialitatea "Contabilitate". Titlu acordat - licentiat in
economie.
Contabilitatea este o profesie veche, format nc n antichitate. Orice
ntreprindere, fie mare sau mic, trebuie, conform legislaiei, s in
contabilitatea, de aceea, are nevoie de cel puin un contabil.
Contabilitatea este, n primul rnd necesar pentru ca la ntreprindere
lucrurile s nu se prefac n haos. Avnd n vedere aceast cerin,
contabilul ntocmete i prelucreaz un ir de documente cu date diverse
i necesare.
Se cunoate afirmaia, c contabilul astzi este mna dreapt a
conductorului ntreprinderii, deoarece el trebuie s pregteasc
informaii importante la luarea deciziilor economice i de conducere. n
acest scop contabilul analizeaz datele privind costurile, rentabilitatea,
mrimea impozitelor, cotarea valorilor mobiliare la burs etc. Totodat,
contabilitatea se consider un limbaj al oamenilor de afaceri. Nici un
contract nu se ncheie de ctre ntreprindere fr acceptul contabilului,
care trebuie s se expun n privina preurilor, de la care furnizor e mai
convenabil de procurat marfa, cu ce preuri s fie vndut producia, care
sunt riscurile de afaceri.
n fine, contabilul trebuie s-i organizeze activitatea n aa mod ca s
asigure pstrarea patrimoniului ntreprinderii, s contribuie la reducerea
pierderilor i majorarea profitului. Deci, de competena i
profesionalismul contabililor, ntr-o mare msur, depinde activitatea i
starea economico-financiar a ntreprinderii n ansamblu.
Se tie deja c a nva la contabilitate este mai greu dect la alte
specialiti de profil economic, ns muli tineri i dau seama c, dac
vor obine aceast profesie, exist o probabilitate mare s-i gseasc i
un serviciu. Prestigiul specialitii se explic i prin aceea c, odat cu
aderarea la standardele internaionale de contabilitate a crescut rolul
contabilului n activitatea economic.
Solicitarea nalt a profesiei de contabil se mai explic i prin aceea
c contabilitatea este astzi sprijinit legislativ. n urma reformei
82
contabile, au fost elaborate i aprobate Standardele Naionale de
Contabilitate i de Audit, alte documente normative. Exist chiar i
Legea contabilitii, codul eticii profesionale al auditorului i
contabilului. Toate acestea creeaz o viziune clar pentru un viitor
specialist n vederea cunoaterii profesiei i a activitii de care va fi
preocupat.
Unui specialist n domeniu i sunt necesare i asemenea caliti ca:
principialitatea, conlucrarea n colectiv, capaciti de a cunoate bine
actele normative. n activitatea sa, contabilul se conduce, n mare
msur, de reguli stricte referitoare la inerea evidenei contabile, la
fiscalitate, la pregtirea rapoartelor financiare i el trebuie s le cunoasc
i s le respecte. ns aceasta nu nseamn c contabilul nu are
posibiliti de alegere a unor metode, de a analiza i de a lua decizii.
Dimpotriv, el poate face acest lucru, dar numai n limitele legislaiei i
nu trebuie s comit abateri nici chiar la insistena conductorului
ntreprinderii. Totodat, contabilul, ca nici un alt specialist, are relaii cu
lucrtorii: n vederea salariilor, deplasrilor, rapoartelor gestionarilor etc.
De aceea el trebuie s cunoasc psihologia, s dispun de o cultur
nalt. Dar s nu uitm i de relaiile comerciale ale firmelor cu partenerii
strini: contabilul trebuie s participe la negocieri, s aib i un
comportament care ar atrage clienii. n cazul dat, e vorba i de
necesitatea cunoaterii unei limbi strine.
Contabilul poate contribui la prosperarea ntreprinderii, dac va izbuti
s impun s vorbeasc acele cifre care sunt obinute n contabilitate,
adic s le analizeze minuios, pentru a gsi rezerve de desfurare a
activitii, de ridicare a eficienei acesteia i de nlturare a pierderilor.
Coninutul planurilor de nvmnt prevede studierea acelor
discipline care contribuie la formarea profesiei de contabil necesar
economiei de pia. Toate disciplinele de specialitate sunt predate n
conformitate cu cerinele standardelor naionale i internaionale.n
vederea executrii practicii de producie catedra de profil dispune de o
baz de practic, avnd legaturi contractuale cu multe ntreprinderi
cunoscute n republic, cum snt societile pe aciuni: "Ionel", "Artima",
"Vitanta". "Floare-Carpet", "Vismos", "Aroma", "Stejaur", unele firme
de audit. Pe parcursul practicii, studenii consolideaz materialul teoretic,
fcnd cunotin cu organizarea contabilitii la ntreprindere,
documentele i registrele utilizate, cu aplicarea calculatoarelor.
Facultatea are relaii cu diferite catedre de la universiti din Republica
Moldova i de peste hotare. Muli profesori ai facultii au participat la
reforma contabilitii, au avut stagii la Academia de Studii Economice din
Bucureti i la Universitatea Omaha din Nebraska (SUA).
83
Procesul de studii se desfoar att cu frecven la zi, ct i cu frecven
erdus, cu predare n limbile romn i rus.
Absolvind facultatea Contabilitate", specialitii posed cunotine
profunde n domeniul contabilitii i auditului, ce le permit s lucreze n
ntreprinderi de stat i private din diferite sectoare ale economiei
naionale (industrie, comer, agricultur etc.), n sistemul financiar-
bancar, precum i n organizaii internaionale. De asemenea, fiind
familiarizai cu controlul i auditul, muli absolveni sunt solicitai de
organele controlului de stat i de firmele care practic activitatea de
audit.
Celor care doresc s-i continue studiile postuniversitare, ASEM le ofer
posibilitatea s urmeze masteratul i doctoratul. Studenii i pot continua
perfecionarea la specialitatea Contabilitate prin studiile de masterat cu 6
programe i, ulterior, cele de doctorat.

3.5. Facultatea Economie General i Drept

Decan, conf.univ.dr. Dorin Vaculovschi

Este o facultate cu un spectru larg de pregtire a cadrelor pentru cele mai
diverse domenii ale economiei naionale. Baza tuturor specializrilor o
constituie pregtirea fundamental economic, plus specializarea n
domeniile corespunztoare.
Insernd cadre didactice cu o experien performant de pregtire a
specialitilor pentru ramurile economiei naionale, n cadrul facultii
activeaz ase catedre:
Economie i Politici economice;
Management social;
Instruire economic i Comunicare de afaceri;
Geografie i Economia mediului;
Drept privat;
Drept public.
Concomitent cu pregtirea special, studenii acestei faculti asimileaz
cunotine n domeniul folosirii calculatoarelor i a tehnicii de birou. Astfel,
absolvenii facultii, nsuind tehnica de calcul i bazele economiei au
posibiliti de a se angaja n cele mai diverse domenii ale economiei Republicii
Moldova: n cadrul organelor de conducere la nivel de ministere, ntreprinderi,
instituii de nvmnt i tiin, n sectorul privat i n cel de stat,
administraiei publice, judeene i locale.
Facultatea pregtete cadre la urmtoarele specializri:
Economie general specialiti cu o larg pregtire economic
84
pentru activitatea profesional n cele mai diverse ramuri ale economiei
naionale: ntreprinderi, instituii financiare, n orice structuri comerciale, n
cadrul organelor de stat de nivel republican i municipal. Titlul acordat -
licentiat n economie;
Administrare public specialiti n domeniul managementului n
sfera social: educaie, ocrotirea sntii, cultur, asisten social, ocuparea
forei de munc. Titlul acordat - licentiat n tiine administrative;
Drept specialiti cu o calificare nalt n domeniul
jurisprudenei, pentru Ministerul Justiiei, poliiei economice i
inspectorate fiscale, ntreprinderi, organizaii vamale, notariat, Uniunea
Avocailor, administraii publice. Titlul acordat - licentiat in drept.
Admiterea la facultate n 2007, conform noului nomenclator de
specialiti universitare, se va efectua la specialitile/domeniile de formare
profesional:
366.1 Economie general;
131.1 Administrare public;
381.1 Drept.
Limbile de studii: romn i rus.

3.6. Facultatea Finane

Decan, prof.univ.dr.hab. Ludmila Cobzari

Facultatea Finane din cadrul ASEM, fiind una din cele mai prestigioase
n coala economic superioar din Republcia Moldova, s-a impus prin
faptele mai multor generaii de profesori, studeni i personal administrativ,
fapte acumulate n aproape cinci decenii. Prezentul, la fel de dinamic i
provocator, ofer facultii prilejul s se afirme prin munca de educare a noii
generaii de specialiti n domeniul financiar-bancar, adaptate la actualele
realiti economice.
Facultatea i desfoar activitatea, alturi de celelalte faculti cu profil
economic din cadrul Academiei de Studii Economice din Moldova, ntr-un
ansamblu de cldiri moderne, amenajate cu sli de bibliotec, laboratoare
informatice, Incubatorul de Afaceri, Complexul Sportiv i Centrul
Multimedia.
Obiectivele principale ale facultii sunt:
promovarea nvmntului economic financiar i a cercetrii de
specialitate, avnd n vedere potenialul naional, exigenele
europene i dorina de integrare n circuitul universal de valori;
85
implicarea activ, consistent i durabil n dezvoltarea naional
i regional, din punct de vedere economic, social i cultural.
Instruirea studenilor n cadrul facultii este asigurat de 5 catedre:
Finane i asigurri, Bnci i activitate bancar, Investiii i piee de capital,
Limbi moderne aplicate i Filozofie i politologie. n cadrul acestor catedre
activeaz profesori competeni i cu experien, acumulat inclusiv n cadrul
stagiilor de calificare n universitile prestigioase din Grecia, Marea
Britanie, Frana, Romnia, Rusia, SUA, Ungaria i alte state.
Activitatea catedrei Finane i Asigurri este axat pe dou domenii
distincte:
1) instructiv-educativ - obiectivul principal este pregtirea cadrelor n
domeniul Finanelor publice, Fiscalitate; Finanelor ntreprinderii i
Asigurrilor n corespundere cu exigenele nvmntului superior
contemporan;
2) tiinific - miezul problemelor abordate sunt: rolul politicilor
financiare n dezvoltarea economiei rii; instrumente financiare de
realizare a strategiei de dezvoltare i creterii economice a Republicii
Moldova; studierea premiselor financiare de integrare a Republicii
Moldova n Uniunea European.
Catedra Bnci i activitate bancar desfoar o activitate didactic
i de cercetare n domeniul financiar-bancar att pe planul operaiunilor
propriu-zise, ct i al gestionrii riscurilor i performanelor bancare i
valutare, domenii de mare interes i atractivitate pentru studenii ASEM.
Obiectivul principal al catedrei Investiii i piee de capital este
pregtirea universitar i postuniversitar a cadrelor n domeniul
investiional i al pieei de capital, inclusiv intern i internaional.
Colectivul catedrei desfoar o activitate didactic de predare,
seminarizare i de cercetare n domeniul investiional i al pieelor de
capital.
La catedr Limbi moderne aplicate accentul este pus pe formarea
competenelor de comunicare oral i scris ce in de activitatea
economic a ntreprinderii, definirea noiunilor i a termenilor
economici, studierea tehnicilor de redactare a scrisorilor comerciale, a
unor circulare, a cererilor de oferte, a ofertelor, comenzilor, reclamaiilor.
Catedra Filozofie i politologie desfoar o activitate didactic i
de cercetare n domeniul filozofiei i politologiei, avnd ca obiectiv
principal cunoaterea de ctre studeni a legitilor generale ale
dezvoltrii gndirii filozofice i politice a omenirii, a problemelor
filozofico-economice i politice actuale, a dezvoltrii societii
postmoderne, contribuind la formarea unei culturi filozofice, filozofico-
86
economice i politice adecvate societii contemporane. Catedra asigur
pregtirea studenilor n domeniu la toate facultile ASEM.
Admiterea la facultate n 2007, conform noului nomenclator de
specialiti universitare, se va efectua la specialitatea/domeniul de formare
profesional:
364.1 Finane i bnci.
Predarea disciplinelor se efectueaz n limbile romn, rus i englez. n
condiiile adaptrii la standardele.
n condiiile adaptrii la standardele Spaiului European de nvmnt
Superior i aderrii Republicii Moldova la Procesul de la Bologna, facultatea
asigur studii de licen n domeniul Finane i Bnci. Conform acestui
proces, facultatea Finane ofer urmtoarele cicluri de studii:
- Primul ciclu care va finaliza cu obinerea noului titlu de liceniat
n economie are ca scop nzestrarea unui numr ct mai mare de
studeni cu cunotine teoretice fundamentale pentru fiecare domeniu de
specializare. Formarea iniial va fi suficient de larg, nct s permit
articularea pe aceast baz solid de cunotine fundamentale a
numeroaselor programe de specializare la nivel de master. Pe de alt
parte, se va asigura un nivel de formare a aptitudinilor i competenelor
cerute de piaa actual a muncii, astfel nct absolventul s poat fi
imediat angajat pe o funcie de execuie, dac aceasta este opiunea lui,
dup parcurgerea celor trei ani.
- Ciclul al doilea care conduce la obinerea unei diplome de master
urmeaz s asigure formarea pe specializri nguste cu cunotine
avansate i competene de analiz i sintez specifice funciilor din
fiecare domeniu:
Activitate bancar
Investiii i piee de capital
Finane corporative
Finane publice i fiscalitate
Finane i asigurri.
Studiul unor discipline de cunoatere avansat n domeniul
specializrii alese i cercetarea tiinific sunt principalele ci de
asigurare a diferenierii competenelor i aptitudinilor fa de nivelul
celor care opteaz s ncheie formarea iniial la nivel de licen.
- Ciclul al treilea vizeaz formarea de vrf a unei elite tiinifice de
economiti n cadrul colilor doctorale i se adreseaz celor mai buni
absolveni ai ciclului de masterat.
Preocuprile pentru realizarea unei pregtiri temeinice a viitorilor
specialiti s-au concretizat, nainte de toate, ntr-un plan de nvmnt
87
modern, echilibrat, ce realizeaz o sintez ntre structura i standardele
actuale ale nvmntului economic universitar i cerinele vieii economice
reale, generate de tranziia la noul tip de economie. Prin discipline
obligatorii, facultative i opionale, planul de nvmnt orienteaz eforturile
studenilor i ale corpului profesoral n trei direcii eseniale: nsuirea
cunotinelor teoretice si practice n domeniile finanelor i contabilitii;
formarea deprinderilor de utilizare a calculatoarelor n prelucrarea
informaiilor statistice i financiar-contabile; nsuirea la un nivel ridicat a
limbilor strine de circulaie universala.
Studiile efectuate n cadrul Facultii Finane sunt dinamice, novatoare,
cu deschidere spre ateptrile absolvenilor.

3.7. Facultatea Relaii Economice Internaionale

Decan, prof.univ.dr.hab. Dumitru Moldovan

"... Dac dorii s obinei studii competitive pe plan european, s
fii de folos rii i s v gsii un rost n via, devenind bogai i
vestii, alegei facultatea de Relaii Economice Internaionale".

Academia de Studii Economice din Moldova este prima instituie de
nvmnt superior din republic care a iniiat pregtirea specialitilor n
domeniul Relaiilor Economice Internaionale. Facultatea REI este unica
n instituiile din Republica Moldova care face parte din reeaua de
universiti sprijinit de programul HESP (Fundaia SOROS).
Obiectivele facultii:
pregtirea specialitilor de nalt calificare n domeniul relaiilor
economice internaionale;
studierea aprofundat a dou limbi moderne de afaceri;
pregtirea cadrelor tiinifice i didactice prin nvmntul
postuniversitar specializat, doctorat i postdoctorat.
Studiile se efectueaz la secia de zi i la secia cu frecven redus.
n prezent, la specialitatea REI se predau:
n limba francez 80% din toate cursurile;
n limba englez 80%;
n limba german 40%.
Facultatea REI a ASEM este prima facultate din Republica Moldova
care pregtete specialiti n domeniul Relaiilor Economice
Internaionale, acumulnd, n aceast privin, cea mai bogat experien.
n 2005 s-a trecut la nvmntul n 2 cicluri, conform prevederilor
procesului de la Bologna.
88
n cadrul facultii activeaz 3 catedre specializate cu 65 de profesori:
Relaii economice internaionale (ef catedr prof.univ.dr.hab. Boris
Chistruga); Economie politic i Doctrine economice (ef catedr
prof.univ.dr.hab. Eugenia Fura); Limbi moderne de afaceri (ef catedr
conf.univ.dr. Gheorghe Moldovanu).
n anii 1994-2007 la facultate au predat cursuri de specialitate peste
80 de profesori din strintate: SUA, Frana, Romnia, Germania, Marea
Britanie, Rusia, Polonia, Italia, Argentina, Ungaria, Belgia, Iran etc.
La secia cu frecven la zi i cea cu frecven redus nva peste
1100 studeni divizai n trei filiere, conform limbii de predare. Anual,
circa 50 de studeni de la facultate se afl la stagiu n universiti i
ntreprinderi strine din Frana, SUA, Germania, Olanda, Romnia i alte
ri. Studenii facultii editeaz ziare n limbile francez i englez.
Admiterea la facultate n 2008, conform noului nomenclator de
specialiti universitare, se va efectua la specialitatea/domeniul de formare
profesional:
365.1 Economie mondial i relaii economice internaionale.
Limbile de studii, n funcie de specializare, sunt: romna, engleza,
franceza i germana.
Studenii Facultii REI sunt pregtii pentru a activa:
n organele puterii de Stat (Preedinie, Parlament, Guvern);
n ambasadele Republicii Moldova peste hotare;
la Banca Naional a Moldovei i bncile comerciale;
n proiectele de asisten ale organismelor economice internaionale;
la ntreprinderile autohtone i cele cu capital strin.
Facultatea REI are semnate acorduri de cooperare cu Facultatea
tiine Economice i Sociale a Universitii Tehnice din Braunchweing
(Germania); Facultatea Relaii Internaionale, Universitatea din Nebrasca
Omaha (SUA); Facultatea Relaii Economice Internaionale i Facultatea
Studii Economice n Limbi Strine de la ASE Bucureti.
n cadrul facultii funcioneaz prima filier francofon deschis n
Republica Moldova, ce beneficiaz de sprijinul multilateral din partea
Ageniei Universitare Francofone. Anual, 16-20 studeni i 3-4 profesori
beneficiaz de stagii la universitile din Frana i Belgia.
n anul 2005, n cadrul catedrei Limbi moderne de afaceri a ASEM,
Centrul de examene a semnat o convenie cu Camera de Comer i
Industrie din Paris (CCIP) pentru organizarea sesiunii de examinare la
nivel local. Examenele la limba francez de afaceri i profesionale sunt
89
menite s testeze aptitudinile candidailor de utilizare a limbii franceze n
mai multe domenii a vieii profesionale, precum i la niveluri diferite.
Diplomele CCIP prezint o alternativ diplomelor de cunoatere a
limbii franceze generale, oferind posibilitatea de continuare a studiilor n
una din rile francofone, dar i perspective de utilizare n scopuri
profesionale.


90
4. Admiterea ASEM-2008

Stimai absolveni ai liceelor i colegiilor!
Dac dorii s devenii specialiti de nalt calificare i s avei un
viitor asigurat, venii la ASEM:
instituie de nvmnt superior acreditat;
peste 15000 studeni;
31 doctori habilitai i 207 doctori n tiine;
bibliotec cu un fond de cri de peste 500 000 volume, 5 sli de
lectur cu 500 locuri (1140 m.p.);
5 blocuri de studii (A, B, C, D i E) situate n preajm;
29 de sli cu calculatoare pentru instruire; peste 1100 de
calculatoare moderne interconectate n reea cu ieire la Internet.
Fiecare student dispune de un cont propriu de pot electronic i
spaiu individual de memorie-disc de 40 megaoctei la unul din
serverele reelei ASEM;
Centrul Multimedia cu 70 de calculatoare Pentium 4 i monitoare TFT,
destinat lucrului individual al studenilor cu informaiile n form
electronic i care este deschis 12 ore pe zi, inclusiv cele de smbt;
catedr militar, n cadrul creia studiile se efectueaz la cerere;
coala auto, n cadrul creia studiile se efectueaz la cerere;
7 cmine pentru studeni, nzestrate cu sli de calculatoare
conectate la Internet, sli de lectur. Taxa pentru cazare constituie
40 % din totalul cheltuielilor;
Incubator de Afaceri Studenesc;
Departament Editorial-Poligrafic cu o capacitate de 50 000 copii/zi;
Complex sportiv modern;
Baza de odihn: 10 tururi x 140 locuri = 1400 persoane (iunie-august);
Centru curativ consultativ;
Cazangerie autonom asigurarea cu energie termic tot anul;
2 cantine pentru studeni i profesori plasate n blocurile A i B
(pentru studenii orfani i semiorfani prnzul este gratis);
burse pentru studeni, inclusiv sociale, sportive, altele;
distracii/activiti: TVC, Balul Bobocilor, discotec, Miss ASEM,
Mister X ASEM, Cel mai bun student ASEM, Olimpiada la Informatic,
Olimpiada la Matematic, turism, odihn, excursii, competiii sportive,
cercuri tiinifice studeneti, conferine internaionale.

91
Admiterea la ASEM are loc prin concurs. Pot candida absolveni
ai liceelor, colilor medii de cultur general, colegiilor, n
conformitate cu prevederile legislaiei n vigoare.
Lista specialitilor cu indicarea limbii de instruire i a formelor
de studii sunt prezentate n tabelul ce urmeaz.



Alte informaii sunt specificate n Regulamentul de organizare i
desfurare a admiterii n Academia de Studii Economice din Moldova
n anul 2008, afiat la locaia Web a ASEM (www.ase.md) i publicat
n pres.

Nu ratai ansa Dvs.
Facultatea
Specialitatea
(ciclul I 3 ani; licen)
Codul
Limba de
instruire
Forma
de studii
Business i
Administrarea
Afacerilor
Business i administrare 363.1 rom/rus zi, f/r
Marketing i logistic 362.1 rom/rus zi, f/r
Merceologie i comer 369.1 rom/rus zi, f/r
Turism
812.1 rom-eng zi
812.1 rom-fr zi
812.1 rom/rus zi, f/r
Cibernetic,
Statistic i
Informatic
Economic
Statistic i previziune
economic
367.1 rom/rus zi, f/r
Cibernetica si informatic
economic
368.1 rom/rus zi, f/r
Informatic 444.1 rom/rus zi, f/r
Contabilitate Contabilitate 361.1 rom/rus zi, f/r
Economie
General i
Drept
Administraie public 313.1 rom/rus zi
Economie general 366.1 romn zi, f/r
Drept 381.1 romn zi, f/f
Finane Finane si bnci
364.1 rom/rus zi, f/r
364.1 rom-eng zi
Relaii
Economice
Internaionale
Economie mondial i relaii
economice internaionale
365.1 rom-eng zi
365.1 rom-fr zi
365.1 rom-germ zi
365.1 rom f/r
92
Anex
Lista participanilor la Olimpiada Republican la
Informatic a elevilor, ediia 2008

Numele Clasa Raion Institutia
Antohi Radu 9 mun. Chiinu LT "Orizont"
Arbuleac Eugeniu 11 mun. Chiinu LT "Gaudeamus"
Arteni Oleg 11 Nisporeni LT "B. Cazacu", or. Nisporeni
Asimionese Alexandr 12 mun. Chiinu L.R.P.R.
Axinti Igor 10 mun. Chiinu LT "M. Eliade"
Babinciuc Eugen 12 mun. Chiinu LT "Spiru Haret"
Baidan Nicolai 11 Sngerei LT "A. Agapie"
Bala Alexandru 12 or. Cahul LT "P. Rumeanev"
Baraniuc Andrei 11 Briceni LT "T. evcenco", Briceni
Barladeanu Igor 9 Floreti LT "M. Eminescu", Floreti
Belinschii Vladislav 9 Tiraspol LT Tiraspol
Berzan Constantin 12 mun. Chiinu LT "Orizont"
Bicec Iuliu 10 Hnceti LT "M. Sadoveanu", Hnceti
Bocancea Mihai 11 Cueni LT Taraclia
Bologa Teodora 12 Rcani LT "L. Gherman" sat. Zicani
Bordeianu Veronica 10 Cimilia LT "Lipoveni"
Bostan Cristina 10 Cueni LT Taraclia
Brnz Nicolae 11 Hnceti LT "M. Eminescu", Hnceti
Budeanu Nicolae 10 Ialoveni LT "Olymp", Costeti
Buian Marcel 10 mun. Chiinu LT "Gaudeamus"
Cabac Cristina 9 Cantemir Gimnaziul Pleeni
Casapu Artiom 10 mun. Chiinu Colegiul de informatic
Cassir Victoria 9 Taraclia LT Nr.2
Ceban Alexandru 12 tefan Vod LT "tefan Vod"
Cebotari Roman 12 Ocnia LT Grinui
Cerchez Ilie 10 Orhei LT "I. L. Caragiale"
Ceriseu Andrei 11 Cimilia LT "M. Eminescu"
Cernov Vladimir 10 Orhei LT "I. L. Caragiale"
Cheptea Constantin 12 Streni LT "I. Vatamanu", Streni
93
Chicu Dumitru 12 Clrai LT Horodite
Chirtoac Andrei 11 Rezina LT "Alexandru cel Bun"
Cibotaru Rodion 11 Drochia LT "M.Eminescu" or. Drochia
Ciobanu Aurelia 12 Teleneti LT Srtenii Vechi
Ciuntu Maxim 10 mun. Chiinu LT "Prometeu-Prim"
Ciuntu Victor 6 mun. Chiinu LT "Spiru Haret"
Ciuperc Sergiu 11 Ungheni LT "A. Mateevici"
Costiuc Vlad 9 Basarabeasca LT "M. Eminescu"
Cotenco Denis 10 Drochia LT "M.Eminescu" or. Drochia
Cracan Dan 11 mun. Chiinu LT "Orizont"
Cre Petru 12 Dubsari LT Cosnita
Cristiuc Mihai 12 Drochia LT "BPHadeu" or. Drochia
Dascl Mihail 12 Rezina LT "Alexandru cel Bun"
Devcati Dumitru 12 mun. Chiinu L.R.P.R.
Dilevschi Sergiu 10 Anenii Noi LT "Gura Bcului"
Diomin Chirill 12 Ocnia LT "M. Eminescu", Otaci
Doibani Valeriu 11 mun. Chiinu LT "Orizont"
Dumbrav Victor 11 Fleti LT Catranc
Fandofan Alexandr 10 Dondueni LT "Gaudeamus", Dondueni
Fanea Andrei 9 Glodeni LT Petrunea
Feenco Vadim 11 Tiraspol LT Tiraspol
Florea Gabriela 10 Floreti LT "I. Creang"
Frimu Andrei 12 mun. Chiinu LT "Orizont"
Fuceji Alecsandr 12 Taraclia LT Nr.2
Gaitan Denis 12 mun. Chiinu LT "V. Alecsandri"
Ganea Ctlin 12 mun. Chiinu LT "M. Eliade"
Gavrili Cristin 10 Clrai LT "M. Sadoveanu"
Ghenghea Marin 12 Glodeni LT Cobani
Ghirghilijiu Ana 10 Rcani LT "L. Gherman" sat. Zicani
Glc Drago 11 Clrai LT "M. Sadoveanu"
Golubovscaia Adelina 12 Dondueni LT "Gaudeamus", Dondueni
Gosticev Stanislav 12 mun. Bli LT "D. Cantemir"
Gramachi Iulian 10 mun. Chiinu LT "Promrteu-Prim"
Grecu Mircea 12 mun. Chiinu LT "Prometeu-Prim"
Grico Irina 10 Streni LT "I. Vatamanu", Streni
Gujuman Dan 12 Orhei LT "I. L. Caragiale"
Guu Pavel 11 Drochia LT "I.Creang"
94
Guzun Ion 10 mun. Chiinu LT "Orizont"
Halca Eugen 10 mun. Chiinu Colegiul de informatic
Harea Constantin 10 Teleneti coala Medie "Hirieni"
Ianac Andrei 12 U.T.A.G Liceul "S.Tomai"
Iarlciov Ilie 10 mun. Bli LT "D. Cantemir"
Ilco Valentin 9 Glodeni LT Fundul Vechi
Ioni Vladimir 11 Nisporeni LT "B. Cazacu", or. Nisporeni
Iosipoi Leonid 10 mun. Chiinu LT "Dm. Cantemir"
Iuhno Nicolae 10 U.T.A.G LT "Gaidarji", or. Comrat
Iurcu Mircea 11 Orhei LT "A. Donici" Peresecina
Iusiumbeli Nicolae 10 U.T.A.G Liceul Nr.1 "S.Copciac "
Jigan Igor 11 Criuleni LT Cimieni
Lazari Mihai 10 mun. Chiinu Colegiul de informatic
Lisia Irina 11 Taraclia LT "Vozova", or. Taraclia
Liubinskii Pavel 12 mun. Chiinu LT "Gaudeamus"
Luca Andrei 9 Ialoveni LT "Olymp", Costeti
Lupaco Ludmila 11 Anenii Noi LT "A. Pukin", Anenii Noi
Lupacu Serghei 9 Leova Gimnaziul "Tochile-Rducani"
Maimescu Alexandru 10 Clrai LT "M. Sadoveanu"
Maleca Gheorghe 9 Streni LT "I. Vatamanu", Streni
Manole Sorin 11 Rcani LT "L. Damian" or. Rcani
Marandici Gheorghe 11 Ialoveni LT "Olymp", Costeti
Marandiuc Dumitru 11 Orhei LT "Onisifor Ghibu"
Miron Alisa 9 Nisporeni LT "V. Bulicanu"
Mironov Andrei 11 mun. Chiinu LT "Gaudeamus"
Mogoreanu Daniel 10 mun. Chiinu LT "Orizont"
Moroi Adrian 9 Soroca LT "C. Stere"
Morociuc Alexei 12 mun. Bli LT "tefan cel Mare"
Movileanu Alexandrin 9 Rezina LT "tefan cel Mare" Rezina
Muntean Alexandr 12 Cueni LT "M. Eminescu", Cueni
Muntean Timofei 11 Streni LT "I. Vatamanu", Streni
Nedelciuc Silviu 9 mun. Bli LT "M. Eminescu"
Nedialcov Iurii 11 U.T.A.G Liceul "G.Gaidarji", Comrat
Nedialcov Victor 9 U.T.A.G LT "D.Caraciobana", Comrat
Nicoar Alexei 12 mun. Chiinu Colegiul de Microelectronic
Novichi Silviu 12 Criuleni LT "B. Dnga" Criuleni
Olaru Alexandru 11 mun. Chiinu LT "Gh. Asachi"
95
Omileanovici Mihai 10 Basarabeasca LT "M. Basarab"
Oniciuc Ina 10 Soroca LT "Petru Rare"
Pascal Sergiu 12 Hnceti LT "A. Donici", Ciuciuleni
Pascari Pavel 9 Cueni LT Taraclia
Podlesni Bogdan 12 Briceni LT Nr. 1, Briceni
Poltarachii Denis 9 Rcani LT "D. Cantemir" or. Rcani
Porumbescu Tatiana 11 or. Cahul LT "M. Eminescu", or. Cahul
Postu Denis 12 mun. Chiinu LT "M. Cervantes"
Potimokin Serghei 12 mun. Chiinu LT "N.M. Sptaru"
Potoroac Mihai 12 Soroca LT "C. Stere"
Predeus Natalia 9 Sngerei coala Medie "A. Crihan"
Prisacaru Serghei 12 mun. Chiinu LT "Prometeu-Prim"
Procopciuc Denis 12 Fleti LT "M. Eminescu", Fleti
Raifura Andrei 11 Glodeni LT Cuhneti
Recian Sergiu 11 Drochia LT "tefan cel Mare"
Roca Iurie 12 mun. Chiinu LT "V. Alecsandri"
Rotaru Manoli 10 mun. Chiinu Liceul Prometeu-Prim
Rusnac Ion 9 Fleti coala Medie Fletii Noi
Rusu Mihaela 12 mun. Chiinu LT "M. Eliade"
Rusu Victor 9 mun. Chiinu LT "Iu. Hadeu"
Sanduleanu tefan 12 mun. Chiinu LT "M. Eliade"
apoval Iaroslav 9 Tiraspol LT Tiraspol
Saranci Mihai 10 Dubsari LT Cosnita
Savca Alexei 11 Ocnia LT "M. Sadoveanu", Ocnia
Scurtu Ana 11 Leova LT "M. Eminescu", Leova
erbu Cristina 9 Criuleni LT "B. Dnga" Criuleni
ipitca Constantin 9 Anenii Noi LT "Gura Bcului"
Smuc Alexandru 11 Ialoveni LT "Olymp", Costeti
Solodchi Gabriel 12 Ocnia LT "M. Sadoveanu", Ocnia
Stamati Daniela 10 Nisporeni LT "B. Cazacu", or. Nisporeni
Starniciuc Mihai 9 Briceni coala Medie Balasineti
Suhinin Alexandr 10 Taraclia LT Nr.2
Svistunov Sergiu 12 mun. Chiinu LT "A. Cantemir"
ar Andrei 10 Rezina LT "Alexandru cel Bun"
Temciuc Irina 10 Sngerei LT "M. Eminescu"
Timofti Natalia 10 Ungheni LT "A. Pukin"
nari Natalia 9 tefan Vod LT "I. Creang" sat. Copceac
96
iverenco Cezar 11 mun. Chiinu LT "Orizont"
Tolocica Olga 12 Ungheni LT "A. Pukin"
Tomacinshi Victor 11 Floreti LT "Frumuica"
urcanu Clin 12 mun. Chiinu L.R.P.R.
Ursan Roman 11 mun. Bli LT "D. Cantemir"
Ursu Olesea 11 Basarabeasca LT "C. Stere", s. Abaclia
Vacarov Viorel 11 Soroca LT "C. Stere"
Vasilos Sergiu 10 mun. Chiinu L.R.P.R.
Vzduan Andrei 9 Drochia LT "M.Eminescu" or. Drochia
Verejan Vasile 9 Teleneti Gimnaziul "M. Eminescu"
Vizir Ivan 11 mun. Chiinu Colegiul de Informatic
Zacon Eugen 10 Leova LT "M. Eminescu", Leova
Zbirnea Alexei 9 mun. Chiinu LT "Orizont"

97























Semnat pentru tipar 20.04.2008
Format 60x84 1/16.
Coli editoriale 6,0. Coli de tipar 6,0.

Tipografia Academiei de Studii Economice din Moldova
Chiinu 2005, Mitropolit Gavriil Bnulescu-Bodoni 59
Tel. 24-55-51