You are on page 1of 2

Ministerul Educaiei Naionale Clasa a IX-a

Olimpiada de Informatic LICEU etapa naional Ziua 1


Braov, 20-25 aprilie 2017
Sursa: mirror.pas, mirror.cpp, mirror.c

Problema 2 - mirror 100 puncte

Numim oglinda numrului natural nenul a, numrul b, obinut prin modificarea fiecrei cifre
din reprezentarea sa binar, de exemplu pentru a=22(10)=10110(2) se obine 01001(2)= 9(10)=b.
Cerine:
Cunoscndu-se numerele naturale N,K i cele N numere natural nenule, scriei un program care:
1) Transform n baza doi termenii irului dat obinndu-se un nou ir format din alipirea cifrelor
binare. Din acest ir se vor determina i afia, separate prin cte un spaiu, toate reprezentrile n baza
10 corespunztoare secvenelor alturate de exact K cifre binare, parcurse de la stnga la drepta. Dac
ultima secven nu are exact K cifre binare, atunci aceasta nu se va mai lua n considerare.
2) S aplice K transformri asupra irului iniial, nlocuind la fiecare pas orice termen cu
oglinda sa. Asupra termenilor care devin zero nu se vor mai efectua alte operaii. Dup efectuarea
celor K transformri, s se determine cea mai lung secven de numere care au cifra 1 pe aceeai
poziie n reprezentarea lor n baza doi. Dac sunt mai multe astfel de secvene avnd lungimea maxim,
se va afia cea mai din stnga.
Date de intrare
Fiierul de intrare mirror.in conine pe primul rnd numrul C, reprezentnd cerina. Pe al
doilea rnd se afl scrise numerele naturale N i K. Pe rndul al treilea sunt cele N numere ale irului
separate prin cte un spaiu.
Date de ieire
Dac C=1, atunci n fiierul de ieire mirror.out se vor scrie separate prin cte un spaiu,
toate numerele cerute n enun.
Dac C=2, atunci n fiierul de ieire mirror.out se va scrie pe prima linie lungimea maxim
a secvenei determinate, iar pe urmtoarea linie separate prin spaiu, poziia primului i ultimului termen
din secven (prima poziie este 1).
Restricii i precizri
1 N 100000
0 K 30
Elementele irului sunt mai mici dect 2000000001;
Pentru 30% din teste cerina va fi C=1.
Exemplu:
mirror.in mirror.ou Explicaie
t
1 3 3 0 1 1 7(10)=111(2); 8(10)=1000(2); 2(10)=10(2); 11(10)=1011(2);
4 2 1 Sirul format este: 1111000101011 i grupate cte 2 avem numerele:
7 8 2 11 11(2)=3(10); 11(2)=3(10); 00(2)=0(10); 01(2)=1(10); 01(2)=1(10); 01(2)=1(10);
2 3 Dup o transformare numerele n baza 2 sunt:
5 1 1 3 0 1 1 0 1 0 <-37
37 72 101 50 0 1 1 0 1 1 1 <-72
116 0 0 1 1 0 1 0 <-101
0 0 1 1 0 1 <-50
0 0 0 1 0 0 0 <-116
Cea mai lung secven este de lungime 3, fiind format din numerele
37, 72, 101 care ncepe pe poziia 1 i se termin pe poziia 3. Mai
exist nc o astfel de secvena (101, 50, 116) dar se alege cea mai
Timp maxim de execuie/test: 1 secund pentru Windows i 0,25 secunde
pentru Linux
Memorie total: 32 MB Dimensiunea maxim a sursei: 10 KB
Ministerul Educaiei Naionale Clasa a IX-a
Olimpiada de Informatic LICEU etapa naional Ziua 1
Braov, 20-25 aprilie 2017
Sursa: mirror.pas, mirror.cpp, mirror.c
din stnga.

Timp maxim de execuie/test: 1 secund pentru Windows i 0,25 secunde


pentru Linux
Memorie total: 32 MB Dimensiunea maxim a sursei: 10 KB

You might also like