Fișierul intrare/ieșire bare.in, bare.out Sursă Sansa de a deveni campion 2002 grupa mica
Autor Emanuela Cerchez Adăugată de avatar Isabela_coman Coman Isabela Patricia Isabela_coman
Timp de execuție pe test 0.1 sec Limită de memorie 16384 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip emptystea de rating de tip emptystea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Bare

Pentru a optimiza achitarea la casa a produselor cumparate de clienti, fiecare produs are inscriptionat un cod de bare. Acest cod este scanat cu un cititor de coduri de bare, care transforma codul intr-o secventa binara.

Codul de bare este constituit dintr-o succesiune de bare verticale albe sau negre, subtiri sau groase. Barele albe alterneaza cu cele negre. Indiferent de culoare, la scanare o bara subtire este transformata in valoarea 0, iar o bara groasa in valoarea 1. O bara subtire din codul de bare arata ca o coloana formata din 5 patratele, iar o bara groasa ca doua coloane formate din cate 5 patratele (ca in figura de mai jos). De exemplu, secventa binara corespunzatoare codului de bare din figura de mai jos este 010001.

La magazinul din colt, vanzatoarea a scapat pe jos cititorul de coduri de bare si acum nu mai functioneaza corect, adica pentru unele patratele nu mai recunoaste culoarea.

Cerinta

Scrieti un program care pentru un cod de bare citit de cititorul de coduri de bare defect, determina secventa binara corespunzatoare, daca este posibil.

Date de intrare

Fisierul de intrare bare.in contine un numar natural N, reprezentand latimea totala a codului de bare. Fiecare dintre urmatoarele 5 linii contine cate N caractere, care pot fi ‘X’, ‘.’ (punct) sau ‘?’ (semn de intrebare).
Caracterul ‘X’ corespunde unui patratel negru, caracterul ‘.’ corespunde unui patratel alb, iar caracterul ‘?’ corespunde unui patratel a carui culoare nu a putut fi determinata de cititorul de coduri de bare defect.

Date de ieșire

Fisierul de iesire bare.out contine pe prima linie secventa binara corespunzatoare codului de bare din fisierul de intrare. Daca aceasta secventa nu poate fi determinata, fisierul de iesire va contine mesajul IMPOSIBIL.

Restricții

  • 1 ≤ N ≤100

Exemplu

bare.in bare.out
8
?.?X?X??
??.X??..
????????
?.???X..
?..X?X??
010001
9
XX.?X..?X
?X.?X?.?X
XX.?X..??
X?.?X..?X
XX.?X?.?X
IMPOSIBIL

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 2 categorii