Sunteți pe pagina 1din 1

Liceul Teoretic de Informatic Grigore Moisil Iai

CONCURS NAIONAL DE INFORMATIC


Clasa a IX- a
Problema 2 - ir
Autor: comisia
Descrierea soluiei (Vlad Andrei Tudose)
1. Soluia care obine 30 de puncte se bazeaz pe generarea succesiv a configuraiilor de semne +/- pn la
N
determinarea unei configuraii corecte. Complexitatea este O(2 *N).
2. Soluia de 100 de puncte se bazeaz pe o rezolvare inductiv astfel:
- presupunem c am determinat deja o secven de semne pentru irul ai+1,ai+2,...,aN astfel nct
valoarea Si+1 a expresiei obinute s aib proprietatea 0 Si+1 ai+1
- putem determina o secven de semne pentru irul ai,ai+1,...,aN astfel nct valoarea Si a expresiei
obinute s aib proprietatea 0 Si ai. Avem dou cazuri:
o Si+1 ai. n acest caz, scriem semnul n faa lui ai i pstrm semnele determinate la pasul
anterior pentru ai+1,ai+2,...,aN. Observm c valoarea Si=-ai+Si+1 are proprietatea dorit
(avem relaia Si+1 ai+1 2*ai din care, dac scdem ai, se obine Si+1 - ai ai deci Si ai)
o Si+1< ai. n acest caz, scriem semnul + n faa lui ai i inversm semnele determinate la pasul
anterior pentru ai+1,ai+2,...,aN. Observm c valoarea Si=ai-Si+1 are proprietatea dorit
(avem relaia Si+1< ai pe care, dac o nmulim cu -1 i adunm apoi ai, se obine ai- Si+1> 0 deci
Si> 0 ). Schimbarea semnelor trebuie implementat n timp constant. O variant de implementare
este construirea, odat cu soluia, a unui vector swap de dimensiune N, cu semnificaia
swap[i]=1, dac semnele valorilor ai+1,ai+2,...,aN trebuie schimbate i 0 altfel.
Complexitatea este O(N).

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