SIO
  Zadania
  Ranking
  Statystyki
  Rozwiązania
  Wiadomości
  Pytania
  Forum
  Przydatne zasoby
  Dokumenty
  O konkursie

  Wejście

  OI10-3
  BUK2003
  OI10-2
  EUNIS2003
  ACM-Trening5
  ACM-Trening4
  ACM-Trening3
  ACM-Trening2
  AP-ACM2
  AP-ACM
  OI10-1
  AP2002
  OI9-3
  PA 2002
  Mini PA
  OI9-2
  OI9-1
  PA 2001

wydruk

Liczby

Termin oddawania rozwiązań: 21.03.2003 23:59

Napisz program służący do konwersji liczb z różnych formatów (np. binarnego, ósemkowego, szestanstkowego) na format dziesiętny.

Wejście

Na wejściu zapisany jest tekst, który zawiera liczby w następujących formatach:
  • dziesiętnym, np. 129 (ale np. 0019 nie jest dobrą liczbą)
  • binarnym --- 0b{niepusty ciąg składający się z 0 i 1}, np. 0b001, 0b101
  • ósemkowym --- 0{niepusty ciąg składający się z cyfr 0..7}, np. 00123, 0666
  • szesnastkowym --- 0x{niepusty ciąg składający się z cyfr 0..9 lub liter a..f}, np. 0x123, 0xffff.
Można założyć, że wartość żadnej z liczb nie przekracza 2000000000. Dodatkowo dane mogą zawierać komentarze w postaci:
  // komentarz.... (do końca linii)

Wyjście

Dla każdej liczby z wejścia należy wpisać (jako jeden wiersz) jej wartość w formacie dziesiętnym. Komentarze i wszystkie inne słowa należy zignorować.

Przykład

Dla danych:
   0x12 0b111 abc abc 0010
0 // to jest komentarz 0x1111 abc abc 
  0b000000000000000000000000000000000000000000000010 0xff 
    0xaFFGG // tu poprawną liczbą jest 0xa
poprawną odpowiedzią jest:
18
7
8
0
2
255
10

Uwaga

Zadanie można rozwiązywać tylko we Flex'ie.

Zadania będą kompilowane przy pomocy następującego polecenia:

flex -oparser.c parser.l
gcc parser.c -o parser -lfl
CEPC 2002, 2003-07-15 18:17:02